gitextract_fgngh5hz/ ├── .editorconfig ├── .eslintrc.js ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── check-codebase.yml │ ├── mirror.yml │ └── release.yml ├── .gitignore ├── .storybook/ │ ├── addons.js │ ├── config.js │ └── webpack.config.js ├── .travis.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── babel.config.js ├── docs/ │ ├── Animations.md │ ├── Lifecycles.md │ ├── Sensors.md │ ├── Side-effects.md │ ├── State.md │ ├── UI.md │ ├── Usage.md │ ├── createBreakpoint.md │ ├── createGlobalState.md │ ├── createMemo.md │ ├── createReducer.md │ ├── createReducerContext.md │ ├── createStateContext.md │ ├── useAsync.md │ ├── useAsyncFn.md │ ├── useAsyncRetry.md │ ├── useAudio.md │ ├── useBattery.md │ ├── useBeforeUnload.md │ ├── useClickAway.md │ ├── useCookie.md │ ├── useCopyToClipboard.md │ ├── useCounter.md │ ├── useCss.md │ ├── useCustomCompareEffect.md │ ├── useDebounce.md │ ├── useDeepCompareEffect.md │ ├── useDefault.md │ ├── useDrop.md │ ├── useEffectOnce.md │ ├── useEnsuredForwardedRef.md │ ├── useError.md │ ├── useEvent.md │ ├── useFavicon.md │ ├── useFirstMountState.md │ ├── useFullscreen.md │ ├── useGeolocation.md │ ├── useGetSet.md │ ├── useGetSetState.md │ ├── useHarmonicIntervalFn.md │ ├── useHash.md │ ├── useHover.md │ ├── useIdle.md │ ├── useIntersection.md │ ├── useInterval.md │ ├── useIsomorphicLayoutEffect.md │ ├── useKey.md │ ├── useKeyPress.md │ ├── useKeyPressEvent.md │ ├── useKeyboardJs.md │ ├── useLatest.md │ ├── useLifecycles.md │ ├── useList.md │ ├── useLocalStorage.md │ ├── useLocation.md │ ├── useLockBodyScroll.md │ ├── useLogger.md │ ├── useLongPress.md │ ├── useMap.md │ ├── useMeasure.md │ ├── useMedia.md │ ├── useMediaDevices.md │ ├── useMediatedState.md │ ├── useMethods.md │ ├── useMotion.md │ ├── useMount.md │ ├── useMountedState.md │ ├── useMouse.md │ ├── useMouseWheel.md │ ├── useMultiStateValidator.md │ ├── useNetworkState.md │ ├── useObservable.md │ ├── useOrientation.md │ ├── usePageLeave.md │ ├── usePermission.md │ ├── usePinchZoom.md │ ├── usePrevious.md │ ├── usePreviousDistinct.md │ ├── usePromise.md │ ├── useQueue.md │ ├── useRaf.md │ ├── useRafLoop.md │ ├── useRafState.md │ ├── useRendersCount.md │ ├── useScratch.md │ ├── useScroll.md │ ├── useScrollbarWidth.md │ ├── useScrolling.md │ ├── useSearchParam.md │ ├── useSessionStorage.md │ ├── useSet.md │ ├── useSetState.md │ ├── useShallowCompareEffect.md │ ├── useSize.md │ ├── useSlider.md │ ├── useSpeech.md │ ├── useSpring.md │ ├── useStartTyping.md │ ├── useStateList.md │ ├── useStateValidator.md │ ├── useStateWithHistory.md │ ├── useThrottle.md │ ├── useThrottleFn.md │ ├── useTimeout.md │ ├── useTimeoutFn.md │ ├── useTitle.md │ ├── useToggle.md │ ├── useTween.md │ ├── useUnmount.md │ ├── useUnmountPromise.md │ ├── useUpdate.md │ ├── useUpdateEffect.md │ ├── useUpsert.md │ ├── useVibrate.md │ ├── useVideo.md │ ├── useWindowScroll.md │ └── useWindowSize.md ├── jest.config.base.ts ├── jest.config.node.ts ├── jest.config.ts ├── package.json ├── renovate.json ├── src/ │ ├── component/ │ │ └── UseKey.tsx │ ├── factory/ │ │ ├── createBreakpoint.ts │ │ ├── createGlobalState.ts │ │ ├── createHTMLMediaHook.ts │ │ ├── createMemo.ts │ │ ├── createReducer.ts │ │ ├── createReducerContext.ts │ │ ├── createRenderProp.ts │ │ ├── createRouter.ts │ │ └── createStateContext.ts │ ├── index.ts │ ├── misc/ │ │ ├── hookState.ts │ │ ├── isDeepEqual.ts │ │ ├── parseTimeRanges.ts │ │ ├── types.ts │ │ └── util.ts │ ├── useAsync.ts │ ├── useAsyncFn.ts │ ├── useAsyncRetry.ts │ ├── useAudio.ts │ ├── useBattery.ts │ ├── useBeforeUnload.ts │ ├── useBoolean.ts │ ├── useClickAway.ts │ ├── useCookie.ts │ ├── useCopyToClipboard.ts │ ├── useCounter.ts │ ├── useCss.ts │ ├── useCustomCompareEffect.ts │ ├── useDebounce.ts │ ├── useDeepCompareEffect.ts │ ├── useDefault.ts │ ├── useDrop.ts │ ├── useDropArea.ts │ ├── useEffectOnce.ts │ ├── useEnsuredForwardedRef.ts │ ├── useError.ts │ ├── useEvent.ts │ ├── useFavicon.ts │ ├── useFirstMountState.ts │ ├── useFullscreen.ts │ ├── useGeolocation.ts │ ├── useGetSet.ts │ ├── useGetSetState.ts │ ├── useHarmonicIntervalFn.ts │ ├── useHash.ts │ ├── useHover.ts │ ├── useHoverDirty.ts │ ├── useIdle.ts │ ├── useIntersection.ts │ ├── useInterval.ts │ ├── useIsomorphicLayoutEffect.ts │ ├── useKey.ts │ ├── useKeyPress.ts │ ├── useKeyPressEvent.ts │ ├── useKeyboardJs.ts │ ├── useLatest.ts │ ├── useLifecycles.ts │ ├── useList.ts │ ├── useLocalStorage.ts │ ├── useLocation.ts │ ├── useLockBodyScroll.ts │ ├── useLogger.ts │ ├── useLongPress.ts │ ├── useMap.ts │ ├── useMeasure.ts │ ├── useMeasureDirty.ts │ ├── useMedia.ts │ ├── useMediaDevices.ts │ ├── useMediatedState.ts │ ├── useMethods.ts │ ├── useMotion.ts │ ├── useMount.ts │ ├── useMountedState.ts │ ├── useMouse.ts │ ├── useMouseHovered.ts │ ├── useMouseWheel.ts │ ├── useMultiStateValidator.ts │ ├── useNetworkState.ts │ ├── useNumber.ts │ ├── useObservable.ts │ ├── useOrientation.ts │ ├── usePageLeave.ts │ ├── usePermission.ts │ ├── usePinchZoom.ts │ ├── usePrevious.ts │ ├── usePreviousDistinct.ts │ ├── usePromise.ts │ ├── useQueue.ts │ ├── useRaf.ts │ ├── useRafLoop.ts │ ├── useRafState.ts │ ├── useRendersCount.ts │ ├── useScratch.ts │ ├── useScroll.ts │ ├── useScrollbarWidth.ts │ ├── useScrolling.ts │ ├── useSearchParam.ts │ ├── useSessionStorage.ts │ ├── useSet.ts │ ├── useSetState.ts │ ├── useShallowCompareEffect.ts │ ├── useSize.tsx │ ├── useSlider.ts │ ├── useSpeech.ts │ ├── useSpring.ts │ ├── useStartTyping.ts │ ├── useStateList.ts │ ├── useStateValidator.ts │ ├── useStateWithHistory.ts │ ├── useThrottle.ts │ ├── useThrottleFn.ts │ ├── useTimeout.ts │ ├── useTimeoutFn.ts │ ├── useTitle.ts │ ├── useToggle.ts │ ├── useTween.ts │ ├── useUnmount.ts │ ├── useUnmountPromise.ts │ ├── useUpdate.ts │ ├── useUpdateEffect.ts │ ├── useUpsert.ts │ ├── useVibrate.ts │ ├── useVideo.ts │ ├── useWait.ts │ ├── useWindowScroll.ts │ └── useWindowSize.ts ├── stories/ │ ├── comps/ │ │ └── UseKey.story.tsx │ ├── createBreakpoint.story.tsx │ ├── createGlobalState.story.tsx │ ├── createMemo.story.tsx │ ├── createReducer.story.tsx │ ├── createReducerContext.story.tsx │ ├── createStateContext.story.tsx │ ├── useAsync.story.tsx │ ├── useAsyncFn.story.tsx │ ├── useAsyncRetry.story.tsx │ ├── useAudio.story.tsx │ ├── useBattery.story.tsx │ ├── useBeforeUnload.story.tsx │ ├── useBoolean.story.tsx │ ├── useClickAway.story.tsx │ ├── useCookie.story.tsx │ ├── useCopyToClipboard.story.tsx │ ├── useCounter.story.tsx │ ├── useCss.story.tsx │ ├── useCustomCompareEffect.story.tsx │ ├── useDebounce.story.tsx │ ├── useDeepCompareEffect.story.tsx │ ├── useDefault.story.tsx │ ├── useDrop.story.tsx │ ├── useDropArea.story.tsx │ ├── useEffectOnce.story.tsx │ ├── useEnsuredForwardedRef.story.tsx │ ├── useError.story.tsx │ ├── useEvent.story.tsx │ ├── useFavicon.story.tsx │ ├── useFirstMountState.story.tsx │ ├── useFullscreen.story.tsx │ ├── useGeolocation.story.tsx │ ├── useGetSet.story.tsx │ ├── useGetSetState.story.tsx │ ├── useHarmonicIntervalFn.story.tsx │ ├── useHash.story.tsx │ ├── useHover.story.tsx │ ├── useHoverDirty.story.tsx │ ├── useIdle.story.tsx │ ├── useIntersection.story.tsx │ ├── useInterval.story.tsx │ ├── useIsomorphicLayoutEffect.story.tsx │ ├── useKey.story.tsx │ ├── useKeyPress.story.tsx │ ├── useKeyPressEvent.story.tsx │ ├── useKeyboardJs.story.tsx │ ├── useLatest.story.tsx │ ├── useLifecycles.story.tsx │ ├── useList.story.tsx │ ├── useLocalStorage.story.tsx │ ├── useLocation.story.tsx │ ├── useLockBodyScroll.story.tsx │ ├── useLogger.story.tsx │ ├── useLongPress.story.tsx │ ├── useMap.story.tsx │ ├── useMeasure.story.tsx │ ├── useMedia.story.tsx │ ├── useMediaDevices.story.tsx │ ├── useMediatedState.story.tsx │ ├── useMethods.story.tsx │ ├── useMotion.story.tsx │ ├── useMount.story.tsx │ ├── useMountedState.story.tsx │ ├── useMouse.story.tsx │ ├── useMouseHovered.story.tsx │ ├── useMouseWheel.story.tsx │ ├── useMultiStateValidator.story.tsx │ ├── useNetwork.story.tsx │ ├── useObservable.story.tsx │ ├── useOrientation.story.tsx │ ├── usePageLeave.story.tsx │ ├── usePermission.story.tsx │ ├── usePinchZoom.story.tsx │ ├── usePrevious.story.tsx │ ├── usePreviousDistinct.story.tsx │ ├── usePromise.story.tsx │ ├── useQueue.story.tsx │ ├── useRaf.story.tsx │ ├── useRafLoop.story.tsx │ ├── useRafState.story.tsx │ ├── useRendersCount.story.tsx │ ├── useScratch.story.tsx │ ├── useScroll.story.tsx │ ├── useScrollbarWidth.story.tsx │ ├── useScrolling.story.tsx │ ├── useSearchParam.story.tsx │ ├── useSessionStorage.story.tsx │ ├── useSet.story.tsx │ ├── useSetState.story.tsx │ ├── useShallowCompareEffect.story.tsx │ ├── useSize.story.tsx │ ├── useSlider.story.tsx │ ├── useSpeech.story.tsx │ ├── useSpring.story.tsx │ ├── useStartTyping.story.tsx │ ├── useStateList.story.tsx │ ├── useStateValidator.story.tsx │ ├── useStateWithHistory.story.tsx │ ├── useThrottle.story.tsx │ ├── useThrottleFn.story.tsx │ ├── useTimeout.story.tsx │ ├── useTimeoutFn.story.tsx │ ├── useTitle.story.tsx │ ├── useToggle.story.tsx │ ├── useTween.story.tsx │ ├── useUnmount.story.tsx │ ├── useUpdate.story.tsx │ ├── useUpdateEffect.story.tsx │ ├── useUpsert.story.tsx │ ├── useVibrate.story.tsx │ ├── useVideo.story.tsx │ ├── useWindowScroll.story.tsx │ ├── useWindowSize.story.tsx │ └── util/ │ ├── CenterStory.tsx │ ├── ConsoleStory.tsx │ ├── NewTabStory.tsx │ └── ShowDocs.tsx ├── tests/ │ ├── createBreakpoint.test.ts │ ├── createGlobalState.test.ts │ ├── createMemo.test.ts │ ├── createReducer.test.ts │ ├── createReducerContext.test.tsx │ ├── createStateContext.test.tsx │ ├── misc/ │ │ └── hookState.test.ts │ ├── setupTests.ts │ ├── useAsync.test.tsx │ ├── useAsyncFn.test.tsx │ ├── useAudio.test.ts │ ├── useBoolean.test.ts │ ├── useCookie.test.tsx │ ├── useCopyToClipboard.test.ts │ ├── useCounter.test.ts │ ├── useCustomCompareEffect.test.ts │ ├── useDebounce.test.ts │ ├── useDeepCompareEffect.test.ts │ ├── useDefault.test.ts │ ├── useEffectOnce.test.ts │ ├── useEnsuredForwardedRef.test.tsx │ ├── useError.test.ts │ ├── useEvent.test.ts │ ├── useFavicon.test.tsx │ ├── useFirstMountState.test.ts │ ├── useGetSet.test.ts │ ├── useGetSetState.test.ts │ ├── useHash.test.ts │ ├── useIntersection.test.tsx │ ├── useInterval.test.ts │ ├── useLatest.test.ts │ ├── useList.test.ts │ ├── useLocalStorage.test.ts │ ├── useLogger.test.ts │ ├── useLongPress.test.tsx │ ├── useMap.test.ts │ ├── useMeasure.test.ts │ ├── useMedia.test.ts │ ├── useMediatedState.test.ts │ ├── useMethods.test.ts │ ├── useMount.test.ts │ ├── useMountedState.test.tsx │ ├── useMultiStateValidator.test.ts │ ├── useNetworkState.test.ts │ ├── useNumber.test.ts │ ├── useObservable.test.ts │ ├── useOrientation.test.ts │ ├── usePrevious.test.ts │ ├── usePreviousDistinct.test.tsx │ ├── useQueue.test.ts │ ├── useRaf.test.ts │ ├── useRafLoop.test.tsx │ ├── useRafState.test.ts │ ├── useRendersCount.test.ts │ ├── useScrollbarWidth.test.ts │ ├── useSearchParam.test.ts │ ├── useSet.test.ts │ ├── useSetState.test.ts │ ├── useShallowCompareEffect.test.ts │ ├── useSpring.test.ts │ ├── useStateList.test.ts │ ├── useStateValidator.test.ts │ ├── useStateWithHistory.test.ts │ ├── useThrottle.test.ts │ ├── useThrottleFn.test.ts │ ├── useTimeout.test.ts │ ├── useTimeoutFn.test.ts │ ├── useTitle.test.ts │ ├── useToggle.test.ts │ ├── useTween.test.ts │ ├── useUnmount.test.ts │ ├── useUnmountPromise.test.ts │ ├── useUpdate.test.ts │ ├── useUpdateEffect.test.ts │ ├── useUpsert.test.ts │ ├── useWindowScroll.test.tsx │ └── useWindowSize.test.tsx └── tsconfig.json