diff --git a/jest.config.js b/jest.config.js
index b036da0ae..aba75b74b 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -36,6 +36,7 @@ module.exports = {
},
},
],
- coverageDirectory: './coverage',
collectCoverage: false,
+ coverageDirectory: './coverage',
+ collectCoverageFrom: ['./src/**/*.{ts,js,tsx,jsx}', '!**/__tests__/**', '!**/__docs__/**'],
};
diff --git a/src/storybookUtil/ImportPath.tsx b/src/__docs__/ImportPath.tsx
similarity index 100%
rename from src/storybookUtil/ImportPath.tsx
rename to src/__docs__/ImportPath.tsx
diff --git a/src/useAsync/__docs__/story.mdx b/src/useAsync/__docs__/story.mdx
index 6deb2f0cf..d16b42475 100644
--- a/src/useAsync/__docs__/story.mdx
+++ b/src/useAsync/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useAsyncAbortable/__docs__/story.mdx b/src/useAsyncAbortable/__docs__/story.mdx
index be0615305..f5e07539f 100644
--- a/src/useAsyncAbortable/__docs__/story.mdx
+++ b/src/useAsyncAbortable/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useClickOutside/__docs__/story.mdx b/src/useClickOutside/__docs__/story.mdx
index 1722a7247..74ec3c01b 100644
--- a/src/useClickOutside/__docs__/story.mdx
+++ b/src/useClickOutside/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useConditionalEffect/__docs__/story.mdx b/src/useConditionalEffect/__docs__/story.mdx
index 331529eb4..0e57f7293 100644
--- a/src/useConditionalEffect/__docs__/story.mdx
+++ b/src/useConditionalEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useControlledRerenderState/__docs__/story.mdx b/src/useControlledRerenderState/__docs__/story.mdx
index 419cd7062..8b232e187 100644
--- a/src/useControlledRerenderState/__docs__/story.mdx
+++ b/src/useControlledRerenderState/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useCounter/__docs__/story.mdx b/src/useCounter/__docs__/story.mdx
index a940c833f..e034278ac 100644
--- a/src/useCounter/__docs__/story.mdx
+++ b/src/useCounter/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useCustomCompareEffect/__docs__/story.mdx b/src/useCustomCompareEffect/__docs__/story.mdx
index 956c8b649..7f0bf1cdd 100644
--- a/src/useCustomCompareEffect/__docs__/story.mdx
+++ b/src/useCustomCompareEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useDebouncedCallback/__docs__/story.mdx b/src/useDebouncedCallback/__docs__/story.mdx
index efc0fba5a..635d19b3c 100644
--- a/src/useDebouncedCallback/__docs__/story.mdx
+++ b/src/useDebouncedCallback/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useDebouncedEffect/__docs__/story.mdx b/src/useDebouncedEffect/__docs__/story.mdx
index 993a64907..2802078c6 100644
--- a/src/useDebouncedEffect/__docs__/story.mdx
+++ b/src/useDebouncedEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useDebouncedState/__docs__/story.mdx b/src/useDebouncedState/__docs__/story.mdx
index 71669ff56..702b8fb59 100644
--- a/src/useDebouncedState/__docs__/story.mdx
+++ b/src/useDebouncedState/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useDeepCompareEffect/__docs__/story.mdx b/src/useDeepCompareEffect/__docs__/story.mdx
index d98390139..90d2dfb75 100644
--- a/src/useDeepCompareEffect/__docs__/story.mdx
+++ b/src/useDeepCompareEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useDocumentTitle/__docs__/story.mdx b/src/useDocumentTitle/__docs__/story.mdx
index d524a9de6..a6efcb080 100644
--- a/src/useDocumentTitle/__docs__/story.mdx
+++ b/src/useDocumentTitle/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useEventListener/__docs__/story.mdx b/src/useEventListener/__docs__/story.mdx
index c2b4e691e..9ccef2217 100644
--- a/src/useEventListener/__docs__/story.mdx
+++ b/src/useEventListener/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useFirstMountState/__docs__/story.mdx b/src/useFirstMountState/__docs__/story.mdx
index 241676083..79bbb467e 100644
--- a/src/useFirstMountState/__docs__/story.mdx
+++ b/src/useFirstMountState/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story, Typeset } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useHookableRef/__docs__/story.mdx b/src/useHookableRef/__docs__/story.mdx
index 61fa6121e..42049d5a6 100644
--- a/src/useHookableRef/__docs__/story.mdx
+++ b/src/useHookableRef/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useHookableRef/__tests__/dom.ts b/src/useHookableRef/__tests__/dom.ts
index afe33790e..a4fdfbf8a 100644
--- a/src/useHookableRef/__tests__/dom.ts
+++ b/src/useHookableRef/__tests__/dom.ts
@@ -44,4 +44,12 @@ describe('useHookableRef', () => {
expect(getter).toHaveBeenCalledTimes(2);
expect(setter).toHaveBeenCalledTimes(1);
});
+
+ it('should work properly without getter and setter', () => {
+ const { result } = renderHook(() => useHookableRef(123));
+ expect(result.current.current).toBe(123);
+
+ result.current.current = 321;
+ expect(result.current.current).toBe(321);
+ });
});
diff --git a/src/useIntersectionObserver/__docs__/story.mdx b/src/useIntersectionObserver/__docs__/story.mdx
index a0b764f2e..8ef4f1f6a 100644
--- a/src/useIntersectionObserver/__docs__/story.mdx
+++ b/src/useIntersectionObserver/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useIntervalEffect/__docs__/story.mdx b/src/useIntervalEffect/__docs__/story.mdx
index bd743a345..58cd98b3f 100644
--- a/src/useIntervalEffect/__docs__/story.mdx
+++ b/src/useIntervalEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useIsMounted/__docs__/story.mdx b/src/useIsMounted/__docs__/story.mdx
index b4277a068..34527a052 100644
--- a/src/useIsMounted/__docs__/story.mdx
+++ b/src/useIsMounted/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useKeyboardEvent/__docs__/story.mdx b/src/useKeyboardEvent/__docs__/story.mdx
index 9941a634d..219c2e322 100644
--- a/src/useKeyboardEvent/__docs__/story.mdx
+++ b/src/useKeyboardEvent/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useLifecycleLogger/__docs__/story.mdx b/src/useLifecycleLogger/__docs__/story.mdx
index a70bb64d4..74b41d880 100644
--- a/src/useLifecycleLogger/__docs__/story.mdx
+++ b/src/useLifecycleLogger/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useLifecycleLogger/__tests__/dom.ts b/src/useLifecycleLogger/__tests__/dom.ts
index 4d5d7aee5..59ef994f9 100644
--- a/src/useLifecycleLogger/__tests__/dom.ts
+++ b/src/useLifecycleLogger/__tests__/dom.ts
@@ -1,30 +1,45 @@
-/* eslint-disable no-console */
import { renderHook } from '@testing-library/react-hooks/dom';
-import { useLifecycleLogger } from '../useLifecycleLogger';
+import { useLifecycleLogger } from '../..';
describe('useLifecycleLogger', () => {
- const originalLog = console.log; // save original console.log function
- beforeEach(() => {
- console.log = jest.fn(); // create a new mock function for each test
+ let logSpy: jest.SpyInstance;
+
+ beforeAll(() => {
+ logSpy = jest.spyOn(console, 'log');
});
+
afterAll(() => {
- console.log = originalLog; // restore original console.log after all tests
+ logSpy.mockRestore();
});
- it('should return TestComponent mounted on first render', () => {
- const dep = 'test';
- renderHook(() => useLifecycleLogger('TestComponent', [dep]));
- expect(console.log).toBeCalledWith('TestComponent mounted', { '0': 'test' });
+
+ beforeEach(() => {
+ logSpy.mockReset();
});
- it('should return `TestComponent updated` on second and next renders', () => {
- const { rerender } = renderHook(() => useLifecycleLogger('TestComponent'));
+ it('should log whole component lifecycle', () => {
+ const { unmount, rerender } = renderHook(
+ ({ deps }) => {
+ useLifecycleLogger('TestComponent', deps);
+ },
+ { initialProps: { deps: [1, 2, 3] } }
+ );
+
+ expect(logSpy).toBeCalledTimes(1);
+ expect(logSpy).toBeCalledWith(`TestComponent mounted`, [1, 2, 3]);
+
+ rerender({ deps: [3, 2, 1] });
+
+ expect(logSpy).toBeCalledTimes(2);
+ expect(logSpy).toBeCalledWith(`TestComponent updated`, [3, 2, 1]);
+
+ rerender({ deps: [1, 5, 6] });
- expect(console.log).toBeCalledWith('TestComponent mounted', {});
+ expect(logSpy).toBeCalledTimes(3);
+ expect(logSpy).toBeCalledWith(`TestComponent updated`, [1, 5, 6]);
- rerender();
- expect(console.log).toBeCalledWith('TestComponent updated', {});
+ unmount();
- rerender();
- expect(console.log).toBeCalledWith('TestComponent updated', {});
+ expect(logSpy).toBeCalledTimes(4);
+ expect(logSpy).toBeCalledWith(`TestComponent unmounted`);
});
});
diff --git a/src/useLifecycleLogger/__tests__/ssr.ts b/src/useLifecycleLogger/__tests__/ssr.ts
index 12e62343e..1e6469902 100644
--- a/src/useLifecycleLogger/__tests__/ssr.ts
+++ b/src/useLifecycleLogger/__tests__/ssr.ts
@@ -1,12 +1,13 @@
import { renderHook } from '@testing-library/react-hooks/server';
-import { useLifecycleLogger } from '../useLifecycleLogger';
+import { useLifecycleLogger } from '../..';
describe('useLifecycleLogger', () => {
it('should be defined', () => {
expect(useLifecycleLogger).toBeDefined();
});
+
it('should render', () => {
- const { result } = renderHook(() => useLifecycleLogger('TestComponent', []));
+ const { result } = renderHook(() => useLifecycleLogger('TestComponent'));
expect(result.error).toBeUndefined();
});
});
diff --git a/src/useLifecycleLogger/useLifecycleLogger.ts b/src/useLifecycleLogger/useLifecycleLogger.ts
index c3eeed984..88f021fda 100644
--- a/src/useLifecycleLogger/useLifecycleLogger.ts
+++ b/src/useLifecycleLogger/useLifecycleLogger.ts
@@ -1,6 +1,5 @@
/* eslint-disable no-console */
-import { DependencyList } from 'react';
-import { useUpdateEffect, useMountEffect } from '..';
+import { DependencyList, useEffect, useRef } from 'react';
/**
* This hook provides a console log when the component mounts, updates and unmounts.
@@ -9,12 +8,23 @@ import { useUpdateEffect, useMountEffect } from '..';
* @param deps Dependencies list, as for `useEffect` hook
*/
export function useLifecycleLogger(componentName: string, deps?: DependencyList): void {
- useMountEffect(() => {
- console.log(`${componentName} mounted`, { ...deps });
- return () => console.log(`${componentName} unmounted`);
- });
+ const mountedRef = useRef(false);
- useUpdateEffect(() => {
- console.log(`${componentName} updated`, { ...deps });
+ useEffect(() => {
+ if (mountedRef.current) {
+ console.log(`${componentName} updated`, deps && [...deps]);
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, deps);
+
+ useEffect(() => {
+ mountedRef.current = true;
+ console.log(`${componentName} mounted`, deps && [...deps]);
+
+ return () => {
+ mountedRef.current = false;
+ console.log(`${componentName} unmounted`);
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
}
diff --git a/src/useList/__docs__/story.mdx b/src/useList/__docs__/story.mdx
index 4a02bbecc..eeee423c5 100644
--- a/src/useList/__docs__/story.mdx
+++ b/src/useList/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useLocalStorageValue/__docs__/story.mdx b/src/useLocalStorageValue/__docs__/story.mdx
index 56bb4946a..51776a6b7 100644
--- a/src/useLocalStorageValue/__docs__/story.mdx
+++ b/src/useLocalStorageValue/__docs__/story.mdx
@@ -1,5 +1,5 @@
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
diff --git a/src/useMap/__docs__/story.mdx b/src/useMap/__docs__/story.mdx
index b65869aee..1ea7f6e8f 100644
--- a/src/useMap/__docs__/story.mdx
+++ b/src/useMap/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useMeasure/__docs__/story.mdx b/src/useMeasure/__docs__/story.mdx
index 9cd91828c..e2dc2c81d 100644
--- a/src/useMeasure/__docs__/story.mdx
+++ b/src/useMeasure/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useMediaQuery/__docs__/story.mdx b/src/useMediaQuery/__docs__/story.mdx
index e8e66b2b9..6d888b0d8 100644
--- a/src/useMediaQuery/__docs__/story.mdx
+++ b/src/useMediaQuery/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useMediatedState/__docs__/story.mdx b/src/useMediatedState/__docs__/story.mdx
index d2e6de529..7b6ed1f7f 100644
--- a/src/useMediatedState/__docs__/story.mdx
+++ b/src/useMediatedState/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useMountEffect/__docs__/story.mdx b/src/useMountEffect/__docs__/story.mdx
index 29882d2a9..aa444f9da 100644
--- a/src/useMountEffect/__docs__/story.mdx
+++ b/src/useMountEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useNetworkState/__docs__/story.mdx b/src/useNetworkState/__docs__/story.mdx
index 5982aa878..07eb086e5 100644
--- a/src/useNetworkState/__docs__/story.mdx
+++ b/src/useNetworkState/__docs__/story.mdx
@@ -1,5 +1,5 @@
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
import { Canvas, Meta, Story } from '@storybook/addon-docs';
diff --git a/src/usePermission/__docs__/story.mdx b/src/usePermission/__docs__/story.mdx
index 0edf2d476..3264b2ab3 100644
--- a/src/usePermission/__docs__/story.mdx
+++ b/src/usePermission/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/usePrevious/__docs__/story.mdx b/src/usePrevious/__docs__/story.mdx
index 831f3b5c8..709861290 100644
--- a/src/usePrevious/__docs__/story.mdx
+++ b/src/usePrevious/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/usePreviousDistinct/__docs__/story.mdx b/src/usePreviousDistinct/__docs__/story.mdx
index df6a73918..5756cdb06 100644
--- a/src/usePreviousDistinct/__docs__/story.mdx
+++ b/src/usePreviousDistinct/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useRafCallback/__docs__/story.mdx b/src/useRafCallback/__docs__/story.mdx
index 834f62b33..e3a234248 100644
--- a/src/useRafCallback/__docs__/story.mdx
+++ b/src/useRafCallback/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useRafEffect/__docs__/story.mdx b/src/useRafEffect/__docs__/story.mdx
index 3537e7c82..baa97a2f7 100644
--- a/src/useRafEffect/__docs__/story.mdx
+++ b/src/useRafEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useRafState/__docs__/story.mdx b/src/useRafState/__docs__/story.mdx
index e9fe1e2d5..40770bd03 100644
--- a/src/useRafState/__docs__/story.mdx
+++ b/src/useRafState/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useRerender/__docs__/story.mdx b/src/useRerender/__docs__/story.mdx
index da9656d7e..e54a80883 100644
--- a/src/useRerender/__docs__/story.mdx
+++ b/src/useRerender/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useResizeObserver/__docs__/story.mdx b/src/useResizeObserver/__docs__/story.mdx
index 3bce09bab..d621ed61c 100644
--- a/src/useResizeObserver/__docs__/story.mdx
+++ b/src/useResizeObserver/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example, ExampleDebounced } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useScreenOrientation/__docs__/story.mdx b/src/useScreenOrientation/__docs__/story.mdx
index b05a6e462..2e424e66c 100644
--- a/src/useScreenOrientation/__docs__/story.mdx
+++ b/src/useScreenOrientation/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useSessionStorageValue/__docs__/story.mdx b/src/useSessionStorageValue/__docs__/story.mdx
index 892c41093..b866ac2d1 100644
--- a/src/useSessionStorageValue/__docs__/story.mdx
+++ b/src/useSessionStorageValue/__docs__/story.mdx
@@ -1,5 +1,5 @@
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
diff --git a/src/useSet/__docs__/story.mdx b/src/useSet/__docs__/story.mdx
index 83eab487e..a3546f734 100644
--- a/src/useSet/__docs__/story.mdx
+++ b/src/useSet/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useSyncedRef/__docs__/story.mdx b/src/useSyncedRef/__docs__/story.mdx
index 9365107d0..cdfd6e565 100644
--- a/src/useSyncedRef/__docs__/story.mdx
+++ b/src/useSyncedRef/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useThrottledCallback/__docs__/story.mdx b/src/useThrottledCallback/__docs__/story.mdx
index 913e9f04d..d393c4a8b 100644
--- a/src/useThrottledCallback/__docs__/story.mdx
+++ b/src/useThrottledCallback/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useThrottledEffect/__docs__/story.mdx b/src/useThrottledEffect/__docs__/story.mdx
index 54397ae71..4f1cd4967 100644
--- a/src/useThrottledEffect/__docs__/story.mdx
+++ b/src/useThrottledEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useThrottledState/__docs__/story.mdx b/src/useThrottledState/__docs__/story.mdx
index c02e7b13d..8d8f75329 100644
--- a/src/useThrottledState/__docs__/story.mdx
+++ b/src/useThrottledState/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useToggle/__docs__/story.mdx b/src/useToggle/__docs__/story.mdx
index d0070d874..508f3033f 100644
--- a/src/useToggle/__docs__/story.mdx
+++ b/src/useToggle/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useUnmountEffect/__docs__/story.mdx b/src/useUnmountEffect/__docs__/story.mdx
index 58d573977..434292a62 100644
--- a/src/useUnmountEffect/__docs__/story.mdx
+++ b/src/useUnmountEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useUpdateEffect/__docs__/story.mdx b/src/useUpdateEffect/__docs__/story.mdx
index a5a5637e6..1a080e049 100644
--- a/src/useUpdateEffect/__docs__/story.mdx
+++ b/src/useUpdateEffect/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useValidator/__docs__/story.mdx b/src/useValidator/__docs__/story.mdx
index d39634bcf..25ecbfe53 100644
--- a/src/useValidator/__docs__/story.mdx
+++ b/src/useValidator/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useVibrate/__docs__/story.mdx b/src/useVibrate/__docs__/story.mdx
index ebc8613f8..5d0af6ed5 100644
--- a/src/useVibrate/__docs__/story.mdx
+++ b/src/useVibrate/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/useWindowSize/__docs__/story.mdx b/src/useWindowSize/__docs__/story.mdx
index 97357216c..3b6531507 100644
--- a/src/useWindowSize/__docs__/story.mdx
+++ b/src/useWindowSize/__docs__/story.mdx
@@ -1,6 +1,6 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Example } from './example.stories';
-import { ImportPath } from '../../storybookUtil/ImportPath';
+import { ImportPath } from '../../__docs__/ImportPath';
diff --git a/src/util/__tests__/dom.ts b/src/util/__tests__/dom.ts
index 6a3838437..a91e24e3b 100644
--- a/src/util/__tests__/dom.ts
+++ b/src/util/__tests__/dom.ts
@@ -1,4 +1,4 @@
-import { resolveHookState } from '../resolveHookState';
+import { resolveHookState } from '../..';
import { basicDepsComparator, off, on } from '../misc';
describe('resolveHookState', () => {