@siberiacancode/reactuse 0.3.15 → 0.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/cjs/helpers/createContext/createContext.cjs +2 -2
- package/dist/cjs/helpers/createContext/createContext.cjs.map +1 -1
- package/dist/cjs/helpers/createContextHook/createContextHook.cjs +2 -2
- package/dist/cjs/helpers/createContextHook/createContextHook.cjs.map +1 -1
- package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs +2 -2
- package/dist/cjs/helpers/createEventEmitter/createEventEmitter.cjs.map +1 -1
- package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs +2 -2
- package/dist/cjs/helpers/createReactiveContext/createReactiveContext.cjs.map +1 -1
- package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs +2 -2
- package/dist/cjs/helpers/createSharedHook/createSharedHook.cjs.map +1 -1
- package/dist/cjs/helpers/createStore/createStore.cjs +2 -2
- package/dist/cjs/helpers/createStore/createStore.cjs.map +1 -1
- package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs +2 -0
- package/dist/cjs/helpers/makeDestructurable/makeDestructurable.cjs.map +1 -0
- package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs +2 -2
- package/dist/cjs/hooks/useActiveElement/useActiveElement.cjs.map +1 -1
- package/dist/cjs/hooks/useAsync/useAsync.cjs +2 -2
- package/dist/cjs/hooks/useAsync/useAsync.cjs.map +1 -1
- package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs +2 -2
- package/dist/cjs/hooks/useAsyncEffect/useAsyncEffect.cjs.map +1 -1
- package/dist/cjs/hooks/useAudio/useAudio.cjs +2 -2
- package/dist/cjs/hooks/useAudio/useAudio.cjs.map +1 -1
- package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -2
- package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -1
- package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs +2 -2
- package/dist/cjs/hooks/useBatchedCallback/useBatchedCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useBattery/useBattery.cjs +2 -2
- package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
- package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs +2 -2
- package/dist/cjs/hooks/useBluetooth/useBluetooth.cjs.map +1 -1
- package/dist/cjs/hooks/useBoolean/useBoolean.cjs +2 -2
- package/dist/cjs/hooks/useBoolean/useBoolean.cjs.map +1 -1
- package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs +2 -2
- package/dist/cjs/hooks/useBreakpoints/useBreakpoints.cjs.map +1 -1
- package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -2
- package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -1
- package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs +2 -2
- package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.cjs.map +1 -1
- package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs +2 -2
- package/dist/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
- package/dist/cjs/hooks/useClipboard/useClipboard.cjs +2 -2
- package/dist/cjs/hooks/useClipboard/useClipboard.cjs.map +1 -1
- package/dist/cjs/hooks/useConst/useConst.cjs +2 -2
- package/dist/cjs/hooks/useConst/useConst.cjs.map +1 -1
- package/dist/cjs/hooks/useControllableState/useControllableState.cjs +2 -2
- package/dist/cjs/hooks/useControllableState/useControllableState.cjs.map +1 -1
- package/dist/cjs/hooks/useCookie/useCookie.cjs +2 -2
- package/dist/cjs/hooks/useCookie/useCookie.cjs.map +1 -1
- package/dist/cjs/hooks/useCookies/useCookies.cjs +2 -2
- package/dist/cjs/hooks/useCookies/useCookies.cjs.map +1 -1
- package/dist/cjs/hooks/useCopy/useCopy.cjs +2 -2
- package/dist/cjs/hooks/useCopy/useCopy.cjs.map +1 -1
- package/dist/cjs/hooks/useCounter/useCounter.cjs +2 -2
- package/dist/cjs/hooks/useCounter/useCounter.cjs.map +1 -1
- package/dist/cjs/hooks/useCssVar/useCssVar.cjs +2 -2
- package/dist/cjs/hooks/useCssVar/useCssVar.cjs.map +1 -1
- package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs +2 -2
- package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs +2 -2
- package/dist/cjs/hooks/useDebounceEffect/useDebounceEffect.cjs.map +1 -1
- package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs +2 -2
- package/dist/cjs/hooks/useDebounceState/useDebounceState.cjs.map +1 -1
- package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs +2 -2
- package/dist/cjs/hooks/useDebounceValue/useDebounceValue.cjs.map +1 -1
- package/dist/cjs/hooks/useDefault/useDefault.cjs +2 -2
- package/dist/cjs/hooks/useDefault/useDefault.cjs.map +1 -1
- package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs +2 -2
- package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.cjs.map +1 -1
- package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs +2 -2
- package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.cjs.map +1 -1
- package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs +2 -2
- package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.cjs.map +1 -1
- package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs +2 -2
- package/dist/cjs/hooks/useDidUpdate/useDidUpdate.cjs.map +1 -1
- package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs +2 -2
- package/dist/cjs/hooks/useDisclosure/useDisclosure.cjs.map +1 -1
- package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +2 -2
- package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
- package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs +2 -2
- package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.cjs.map +1 -1
- package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs +2 -2
- package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.cjs.map +1 -1
- package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs +2 -2
- package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.cjs.map +1 -1
- package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs +2 -2
- package/dist/cjs/hooks/useDoubleClick/useDoubleClick.cjs.map +1 -1
- package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -2
- package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -1
- package/dist/cjs/hooks/useEvent/useEvent.cjs +2 -2
- package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
- package/dist/cjs/hooks/useEventListener/useEventListener.cjs +2 -2
- package/dist/cjs/hooks/useEventListener/useEventListener.cjs.map +1 -1
- package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -2
- package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -1
- package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs +2 -2
- package/dist/cjs/hooks/useEyeDropper/useEyeDropper.cjs.map +1 -1
- package/dist/cjs/hooks/useFavicon/useFavicon.cjs +2 -2
- package/dist/cjs/hooks/useFavicon/useFavicon.cjs.map +1 -1
- package/dist/cjs/hooks/useField/useField.cjs +2 -2
- package/dist/cjs/hooks/useField/useField.cjs.map +1 -1
- package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs +2 -2
- package/dist/cjs/hooks/useFileDialog/useFileDialog.cjs.map +1 -1
- package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs +2 -0
- package/dist/cjs/hooks/useFileSystemAccess/useFileSystemAccess.cjs.map +1 -0
- package/dist/cjs/hooks/useFocus/useFocus.cjs +2 -2
- package/dist/cjs/hooks/useFocus/useFocus.cjs.map +1 -1
- package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs +2 -2
- package/dist/cjs/hooks/useFocusTrap/useFocusTrap.cjs.map +1 -1
- package/dist/cjs/hooks/useFps/useFps.cjs +2 -2
- package/dist/cjs/hooks/useFps/useFps.cjs.map +1 -1
- package/dist/cjs/hooks/useFul/useFul.cjs +2 -2
- package/dist/cjs/hooks/useFul/useFul.cjs.map +1 -1
- package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs +2 -2
- package/dist/cjs/hooks/useFullscreen/useFullscreen.cjs.map +1 -1
- package/dist/cjs/hooks/useGamepad/useGamepad.cjs +2 -2
- package/dist/cjs/hooks/useGamepad/useGamepad.cjs.map +1 -1
- package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs +2 -2
- package/dist/cjs/hooks/useGeolocation/useGeolocation.cjs.map +1 -1
- package/dist/cjs/hooks/useHash/useHash.cjs +2 -2
- package/dist/cjs/hooks/useHash/useHash.cjs.map +1 -1
- package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs +2 -2
- package/dist/cjs/hooks/useHotkeys/useHotkeys.cjs.map +1 -1
- package/dist/cjs/hooks/useHover/useHover.cjs +2 -2
- package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
- package/dist/cjs/hooks/useIdle/useIdle.cjs +2 -2
- package/dist/cjs/hooks/useIdle/useIdle.cjs.map +1 -1
- package/dist/cjs/hooks/useImage/useImage.cjs +2 -2
- package/dist/cjs/hooks/useImage/useImage.cjs.map +1 -1
- package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs +2 -2
- package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.cjs.map +1 -1
- package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +2 -2
- package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
- package/dist/cjs/hooks/useInterval/useInterval.cjs +2 -2
- package/dist/cjs/hooks/useInterval/useInterval.cjs.map +1 -1
- package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs +2 -2
- package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.cjs.map +1 -1
- package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs +2 -2
- package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs.map +1 -1
- package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +2 -2
- package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
- package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs +2 -2
- package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.cjs.map +1 -1
- package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +2 -2
- package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs +2 -2
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
- package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs +2 -2
- package/dist/cjs/hooks/useLastChanged/useLastChanged.cjs.map +1 -1
- package/dist/cjs/hooks/useLatest/useLatest.cjs +2 -2
- package/dist/cjs/hooks/useLatest/useLatest.cjs.map +1 -1
- package/dist/cjs/hooks/useLess/useLess.cjs +2 -2
- package/dist/cjs/hooks/useLess/useLess.cjs.map +1 -1
- package/dist/cjs/hooks/useList/useList.cjs +2 -2
- package/dist/cjs/hooks/useList/useList.cjs.map +1 -1
- package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs +2 -2
- package/dist/cjs/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
- package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +2 -2
- package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs +2 -2
- package/dist/cjs/hooks/useLockScroll/useLockScroll.cjs.map +1 -1
- package/dist/cjs/hooks/useLogger/useLogger.cjs +2 -2
- package/dist/cjs/hooks/useLogger/useLogger.cjs.map +1 -1
- package/dist/cjs/hooks/useLongPress/useLongPress.cjs +2 -2
- package/dist/cjs/hooks/useLongPress/useLongPress.cjs.map +1 -1
- package/dist/cjs/hooks/useMap/useMap.cjs +2 -2
- package/dist/cjs/hooks/useMap/useMap.cjs.map +1 -1
- package/dist/cjs/hooks/useMeasure/useMeasure.cjs +2 -2
- package/dist/cjs/hooks/useMeasure/useMeasure.cjs.map +1 -1
- package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs +2 -2
- package/dist/cjs/hooks/useMediaControls/useMediaControls.cjs.map +1 -1
- package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs +2 -2
- package/dist/cjs/hooks/useMediaQuery/useMediaQuery.cjs.map +1 -1
- package/dist/cjs/hooks/useMemory/useMemory.cjs +2 -2
- package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
- package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs +2 -2
- package/dist/cjs/hooks/useMergedRef/useMergedRef.cjs.map +1 -1
- package/dist/cjs/hooks/useMount/useMount.cjs +2 -2
- package/dist/cjs/hooks/useMount/useMount.cjs.map +1 -1
- package/dist/cjs/hooks/useMouse/useMouse.cjs +2 -2
- package/dist/cjs/hooks/useMouse/useMouse.cjs.map +1 -1
- package/dist/cjs/hooks/useMutation/useMutation.cjs +2 -2
- package/dist/cjs/hooks/useMutation/useMutation.cjs.map +1 -1
- package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs +2 -2
- package/dist/cjs/hooks/useMutationObserver/useMutationObserver.cjs.map +1 -1
- package/dist/cjs/hooks/useNetwork/useNetwork.cjs +2 -2
- package/dist/cjs/hooks/useNetwork/useNetwork.cjs.map +1 -1
- package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs +2 -0
- package/dist/cjs/hooks/useObjectUrl/useObjectUrl.cjs.map +1 -0
- package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs +2 -2
- package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.cjs.map +1 -1
- package/dist/cjs/hooks/useOnce/useOnce.cjs +2 -2
- package/dist/cjs/hooks/useOnce/useOnce.cjs.map +1 -1
- package/dist/cjs/hooks/useOnline/useOnline.cjs +2 -2
- package/dist/cjs/hooks/useOnline/useOnline.cjs.map +1 -1
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs +2 -2
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.cjs.map +1 -1
- package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs +2 -2
- package/dist/cjs/hooks/useOptimistic/useOptimistic.cjs.map +1 -1
- package/dist/cjs/hooks/useOrientation/useOrientation.cjs +2 -2
- package/dist/cjs/hooks/useOrientation/useOrientation.cjs.map +1 -1
- package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs +2 -2
- package/dist/cjs/hooks/useOtpCredential/useOtpCredential.cjs.map +1 -1
- package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs +2 -2
- package/dist/cjs/hooks/usePageLeave/usePageLeave.cjs.map +1 -1
- package/dist/cjs/hooks/usePaint/usePaint.cjs +2 -2
- package/dist/cjs/hooks/usePaint/usePaint.cjs.map +1 -1
- package/dist/cjs/hooks/useParallax/useParallax.cjs +2 -2
- package/dist/cjs/hooks/useParallax/useParallax.cjs.map +1 -1
- package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs +2 -2
- package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.cjs.map +1 -1
- package/dist/cjs/hooks/usePermission/usePermission.cjs +2 -2
- package/dist/cjs/hooks/usePermission/usePermission.cjs.map +1 -1
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs +2 -2
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.cjs.map +1 -1
- package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs +2 -2
- package/dist/cjs/hooks/usePointerLock/usePointerLock.cjs.map +1 -1
- package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs +2 -2
- package/dist/cjs/hooks/usePostMessage/usePostMessage.cjs.map +1 -1
- package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs +2 -2
- package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.cjs.map +1 -1
- package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs +2 -2
- package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.cjs.map +1 -1
- package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs +2 -2
- package/dist/cjs/hooks/usePreferredDark/usePreferredDark.cjs.map +1 -1
- package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs +2 -2
- package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.cjs.map +1 -1
- package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs +2 -2
- package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs.map +1 -1
- package/dist/cjs/hooks/usePrevious/usePrevious.cjs +2 -2
- package/dist/cjs/hooks/usePrevious/usePrevious.cjs.map +1 -1
- package/dist/cjs/hooks/useProgress/useProgress.cjs +2 -2
- package/dist/cjs/hooks/useProgress/useProgress.cjs.map +1 -1
- package/dist/cjs/hooks/useQuery/useQuery.cjs +2 -2
- package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
- package/dist/cjs/hooks/useQueue/useQueue.cjs +2 -2
- package/dist/cjs/hooks/useQueue/useQueue.cjs.map +1 -1
- package/dist/cjs/hooks/useRaf/useRaf.cjs +2 -2
- package/dist/cjs/hooks/useRaf/useRaf.cjs.map +1 -1
- package/dist/cjs/hooks/useRafState/useRafState.cjs +2 -2
- package/dist/cjs/hooks/useRafState/useRafState.cjs.map +1 -1
- package/dist/cjs/hooks/useRefState/useRefState.cjs +2 -2
- package/dist/cjs/hooks/useRefState/useRefState.cjs.map +1 -1
- package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs +2 -2
- package/dist/cjs/hooks/useRenderCount/useRenderCount.cjs.map +1 -1
- package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs +2 -2
- package/dist/cjs/hooks/useRenderInfo/useRenderInfo.cjs.map +1 -1
- package/dist/cjs/hooks/useRerender/useRerender.cjs +2 -2
- package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
- package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs +2 -2
- package/dist/cjs/hooks/useResizeObserver/useResizeObserver.cjs.map +1 -1
- package/dist/cjs/hooks/useRightClick/useRightClick.cjs +2 -2
- package/dist/cjs/hooks/useRightClick/useRightClick.cjs.map +1 -1
- package/dist/cjs/hooks/useScript/useScript.cjs +2 -2
- package/dist/cjs/hooks/useScript/useScript.cjs.map +1 -1
- package/dist/cjs/hooks/useScroll/useScroll.cjs +2 -2
- package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
- package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +2 -2
- package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
- package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs +2 -2
- package/dist/cjs/hooks/useScrollTo/useScrollTo.cjs.map +1 -1
- package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs +2 -2
- package/dist/cjs/hooks/useSessionStorage/useSessionStorage.cjs.map +1 -1
- package/dist/cjs/hooks/useSet/useSet.cjs +2 -2
- package/dist/cjs/hooks/useSet/useSet.cjs.map +1 -1
- package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs +2 -2
- package/dist/cjs/hooks/useShallowEffect/useShallowEffect.cjs.map +1 -1
- package/dist/cjs/hooks/useShare/useShare.cjs +2 -2
- package/dist/cjs/hooks/useShare/useShare.cjs.map +1 -1
- package/dist/cjs/hooks/useSize/useSize.cjs +2 -2
- package/dist/cjs/hooks/useSize/useSize.cjs.map +1 -1
- package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs +2 -2
- package/dist/cjs/hooks/useSpeechRecognition/useSpeechRecognition.cjs.map +1 -1
- package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs +2 -2
- package/dist/cjs/hooks/useSpeechSynthesis/useSpeechSynthesis.cjs.map +1 -1
- package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs +2 -2
- package/dist/cjs/hooks/useStateHistory/useStateHistory.cjs.map +1 -1
- package/dist/cjs/hooks/useStep/useStep.cjs +2 -2
- package/dist/cjs/hooks/useStep/useStep.cjs.map +1 -1
- package/dist/cjs/hooks/useSticky/useSticky.cjs +2 -2
- package/dist/cjs/hooks/useSticky/useSticky.cjs.map +1 -1
- package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs +2 -2
- package/dist/cjs/hooks/useStopwatch/useStopwatch.cjs.map +1 -1
- package/dist/cjs/hooks/useStorage/useStorage.cjs +2 -2
- package/dist/cjs/hooks/useStorage/useStorage.cjs.map +1 -1
- package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +2 -2
- package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
- package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs +2 -2
- package/dist/cjs/hooks/useTextSelection/useTextSelection.cjs.map +1 -1
- package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs +2 -2
- package/dist/cjs/hooks/useTextareaAutosize/useTextareaAutosize.cjs.map +1 -1
- package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +2 -2
- package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs +2 -2
- package/dist/cjs/hooks/useThrottleEffect/useThrottleEffect.cjs.map +1 -1
- package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs +2 -2
- package/dist/cjs/hooks/useThrottleState/useThrottleState.cjs.map +1 -1
- package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs +2 -2
- package/dist/cjs/hooks/useThrottleValue/useThrottleValue.cjs.map +1 -1
- package/dist/cjs/hooks/useTime/useTime.cjs +2 -2
- package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
- package/dist/cjs/hooks/useTimeout/useTimeout.cjs +2 -2
- package/dist/cjs/hooks/useTimeout/useTimeout.cjs.map +1 -1
- package/dist/cjs/hooks/useTimer/useTimer.cjs +2 -2
- package/dist/cjs/hooks/useTimer/useTimer.cjs.map +1 -1
- package/dist/cjs/hooks/useToggle/useToggle.cjs +2 -2
- package/dist/cjs/hooks/useToggle/useToggle.cjs.map +1 -1
- package/dist/cjs/hooks/useUnmount/useUnmount.cjs +2 -2
- package/dist/cjs/hooks/useUnmount/useUnmount.cjs.map +1 -1
- package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs +2 -2
- package/dist/cjs/hooks/useUrlSearchParam/useUrlSearchParam.cjs.map +1 -1
- package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs +2 -2
- package/dist/cjs/hooks/useUrlSearchParams/useUrlSearchParams.cjs.map +1 -1
- package/dist/cjs/hooks/useVibrate/useVibrate.cjs +2 -2
- package/dist/cjs/hooks/useVibrate/useVibrate.cjs.map +1 -1
- package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs +2 -2
- package/dist/cjs/hooks/useVirtualKeyboard/useVirtualKeyboard.cjs.map +1 -1
- package/dist/cjs/hooks/useVisibility/useVisibility.cjs +2 -2
- package/dist/cjs/hooks/useVisibility/useVisibility.cjs.map +1 -1
- package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs +2 -2
- package/dist/cjs/hooks/useWakeLock/useWakeLock.cjs.map +1 -1
- package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs +2 -2
- package/dist/cjs/hooks/useWebSocket/useWebSocket.cjs.map +1 -1
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs +2 -2
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
- package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs +2 -2
- package/dist/cjs/hooks/useWindowFocus/useWindowFocus.cjs.map +1 -1
- package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs +2 -2
- package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
- package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs +2 -2
- package/dist/cjs/hooks/useWindowSize/useWindowSize.cjs.map +1 -1
- package/dist/cjs/hooks/useWizard/useWizard.cjs +2 -2
- package/dist/cjs/hooks/useWizard/useWizard.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -2
- package/dist/cjs/utils/helpers/copy.cjs +2 -2
- package/dist/cjs/utils/helpers/copy.cjs.map +1 -1
- package/dist/cjs/utils/helpers/debounce.cjs +2 -2
- package/dist/cjs/utils/helpers/debounce.cjs.map +1 -1
- package/dist/cjs/utils/helpers/getDate.cjs +2 -2
- package/dist/cjs/utils/helpers/getDate.cjs.map +1 -1
- package/dist/cjs/utils/helpers/getRetry.cjs +2 -2
- package/dist/cjs/utils/helpers/getRetry.cjs.map +1 -1
- package/dist/cjs/utils/helpers/isTarget.cjs +2 -2
- package/dist/cjs/utils/helpers/isTarget.cjs.map +1 -1
- package/dist/cjs/utils/helpers/throttle.cjs +2 -2
- package/dist/cjs/utils/helpers/throttle.cjs.map +1 -1
- package/dist/esm/helpers/createContext/createContext.mjs +32 -33
- package/dist/esm/helpers/createContext/createContext.mjs.map +1 -1
- package/dist/esm/helpers/createContextHook/createContextHook.mjs +19 -12
- package/dist/esm/helpers/createContextHook/createContextHook.mjs.map +1 -1
- package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs +34 -33
- package/dist/esm/helpers/createEventEmitter/createEventEmitter.mjs.map +1 -1
- package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs +53 -53
- package/dist/esm/helpers/createReactiveContext/createReactiveContext.mjs.map +1 -1
- package/dist/esm/helpers/createSharedHook/createSharedHook.mjs +36 -41
- package/dist/esm/helpers/createSharedHook/createSharedHook.mjs.map +1 -1
- package/dist/esm/helpers/createStore/createStore.mjs +25 -29
- package/dist/esm/helpers/createStore/createStore.mjs.map +1 -1
- package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs +21 -0
- package/dist/esm/helpers/makeDestructurable/makeDestructurable.mjs.map +1 -0
- package/dist/esm/hooks/useActiveElement/useActiveElement.mjs +28 -27
- package/dist/esm/hooks/useActiveElement/useActiveElement.mjs.map +1 -1
- package/dist/esm/hooks/useAsync/useAsync.mjs +22 -21
- package/dist/esm/hooks/useAsync/useAsync.mjs.map +1 -1
- package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs +10 -9
- package/dist/esm/hooks/useAsyncEffect/useAsyncEffect.mjs.map +1 -1
- package/dist/esm/hooks/useAudio/useAudio.mjs +55 -55
- package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
- package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +43 -40
- package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -1
- package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs +20 -19
- package/dist/esm/hooks/useBatchedCallback/useBatchedCallback.mjs.map +1 -1
- package/dist/esm/hooks/useBattery/useBattery.mjs +32 -29
- package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
- package/dist/esm/hooks/useBluetooth/useBluetooth.mjs +35 -33
- package/dist/esm/hooks/useBluetooth/useBluetooth.mjs.map +1 -1
- package/dist/esm/hooks/useBoolean/useBoolean.mjs +9 -8
- package/dist/esm/hooks/useBoolean/useBoolean.mjs.map +1 -1
- package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs +90 -104
- package/dist/esm/hooks/useBreakpoints/useBreakpoints.mjs.map +1 -1
- package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +30 -31
- package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -1
- package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs +7 -6
- package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.mjs.map +1 -1
- package/dist/esm/hooks/useClickOutside/useClickOutside.mjs +21 -21
- package/dist/esm/hooks/useClickOutside/useClickOutside.mjs.map +1 -1
- package/dist/esm/hooks/useClipboard/useClipboard.mjs +25 -23
- package/dist/esm/hooks/useClipboard/useClipboard.mjs.map +1 -1
- package/dist/esm/hooks/useConst/useConst.mjs +7 -6
- package/dist/esm/hooks/useConst/useConst.mjs.map +1 -1
- package/dist/esm/hooks/useControllableState/useControllableState.mjs +18 -16
- package/dist/esm/hooks/useControllableState/useControllableState.mjs.map +1 -1
- package/dist/esm/hooks/useCookie/useCookie.mjs +53 -56
- package/dist/esm/hooks/useCookie/useCookie.mjs.map +1 -1
- package/dist/esm/hooks/useCookies/useCookies.mjs +38 -37
- package/dist/esm/hooks/useCookies/useCookies.mjs.map +1 -1
- package/dist/esm/hooks/useCopy/useCopy.mjs +15 -10
- package/dist/esm/hooks/useCopy/useCopy.mjs.map +1 -1
- package/dist/esm/hooks/useCounter/useCounter.mjs +26 -22
- package/dist/esm/hooks/useCounter/useCounter.mjs.map +1 -1
- package/dist/esm/hooks/useCssVar/useCssVar.mjs +42 -32
- package/dist/esm/hooks/useCssVar/useCssVar.mjs.map +1 -1
- package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs +18 -17
- package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.mjs.map +1 -1
- package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs +19 -18
- package/dist/esm/hooks/useDebounceEffect/useDebounceEffect.mjs.map +1 -1
- package/dist/esm/hooks/useDebounceState/useDebounceState.mjs +10 -9
- package/dist/esm/hooks/useDebounceState/useDebounceState.mjs.map +1 -1
- package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs +12 -11
- package/dist/esm/hooks/useDebounceValue/useDebounceValue.mjs.map +1 -1
- package/dist/esm/hooks/useDefault/useDefault.mjs +9 -8
- package/dist/esm/hooks/useDefault/useDefault.mjs.map +1 -1
- package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs +49 -36
- package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.mjs.map +1 -1
- package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs +28 -27
- package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.mjs.map +1 -1
- package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs +18 -14
- package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.mjs.map +1 -1
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs +15 -18
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
- package/dist/esm/hooks/useDisclosure/useDisclosure.mjs +14 -8
- package/dist/esm/hooks/useDisclosure/useDisclosure.mjs.map +1 -1
- package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +39 -39
- package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
- package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs +8 -7
- package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.mjs.map +1 -1
- package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs +28 -27
- package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.mjs.map +1 -1
- package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs +9 -8
- package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.mjs.map +1 -1
- package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs +25 -28
- package/dist/esm/hooks/useDoubleClick/useDoubleClick.mjs.map +1 -1
- package/dist/esm/hooks/useDropZone/useDropZone.mjs +55 -47
- package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -1
- package/dist/esm/hooks/useEvent/useEvent.mjs +12 -11
- package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
- package/dist/esm/hooks/useEventListener/useEventListener.mjs +24 -19
- package/dist/esm/hooks/useEventListener/useEventListener.mjs.map +1 -1
- package/dist/esm/hooks/useEventSource/useEventSource.mjs +44 -49
- package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -1
- package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs +17 -16
- package/dist/esm/hooks/useEyeDropper/useEyeDropper.mjs.map +1 -1
- package/dist/esm/hooks/useFavicon/useFavicon.mjs +20 -18
- package/dist/esm/hooks/useFavicon/useFavicon.mjs.map +1 -1
- package/dist/esm/hooks/useField/useField.mjs +61 -67
- package/dist/esm/hooks/useField/useField.mjs.map +1 -1
- package/dist/esm/hooks/useFileDialog/useFileDialog.mjs +34 -32
- package/dist/esm/hooks/useFileDialog/useFileDialog.mjs.map +1 -1
- package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs +59 -0
- package/dist/esm/hooks/useFileSystemAccess/useFileSystemAccess.mjs.map +1 -0
- package/dist/esm/hooks/useFocus/useFocus.mjs +43 -34
- package/dist/esm/hooks/useFocus/useFocus.mjs.map +1 -1
- package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs +51 -36
- package/dist/esm/hooks/useFocusTrap/useFocusTrap.mjs.map +1 -1
- package/dist/esm/hooks/useFps/useFps.mjs +18 -22
- package/dist/esm/hooks/useFps/useFps.mjs.map +1 -1
- package/dist/esm/hooks/useFul/useFul.mjs +8 -7
- package/dist/esm/hooks/useFul/useFul.mjs.map +1 -1
- package/dist/esm/hooks/useFullscreen/useFullscreen.mjs +39 -42
- package/dist/esm/hooks/useFullscreen/useFullscreen.mjs.map +1 -1
- package/dist/esm/hooks/useGamepad/useGamepad.mjs +76 -83
- package/dist/esm/hooks/useGamepad/useGamepad.mjs.map +1 -1
- package/dist/esm/hooks/useGeolocation/useGeolocation.mjs +50 -45
- package/dist/esm/hooks/useGeolocation/useGeolocation.mjs.map +1 -1
- package/dist/esm/hooks/useHash/useHash.mjs +24 -26
- package/dist/esm/hooks/useHash/useHash.mjs.map +1 -1
- package/dist/esm/hooks/useHotkeys/useHotkeys.mjs +35 -37
- package/dist/esm/hooks/useHotkeys/useHotkeys.mjs.map +1 -1
- package/dist/esm/hooks/useHover/useHover.mjs +30 -25
- package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
- package/dist/esm/hooks/useIdle/useIdle.mjs +29 -26
- package/dist/esm/hooks/useIdle/useIdle.mjs.map +1 -1
- package/dist/esm/hooks/useImage/useImage.mjs +24 -26
- package/dist/esm/hooks/useImage/useImage.mjs.map +1 -1
- package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs +38 -32
- package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.mjs.map +1 -1
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs +38 -37
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.mjs.map +1 -1
- package/dist/esm/hooks/useInterval/useInterval.mjs +20 -20
- package/dist/esm/hooks/useInterval/useInterval.mjs.map +1 -1
- package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs +8 -7
- package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.mjs.map +1 -1
- package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs +7 -6
- package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs.map +1 -1
- package/dist/esm/hooks/useKeyPress/useKeyPress.mjs +30 -26
- package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
- package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs +33 -35
- package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.mjs.map +1 -1
- package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +16 -19
- package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs +36 -25
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
- package/dist/esm/hooks/useLastChanged/useLastChanged.mjs +10 -9
- package/dist/esm/hooks/useLastChanged/useLastChanged.mjs.map +1 -1
- package/dist/esm/hooks/useLatest/useLatest.mjs +14 -16
- package/dist/esm/hooks/useLatest/useLatest.mjs.map +1 -1
- package/dist/esm/hooks/useLess/useLess.mjs +9 -8
- package/dist/esm/hooks/useLess/useLess.mjs.map +1 -1
- package/dist/esm/hooks/useList/useList.mjs +22 -22
- package/dist/esm/hooks/useList/useList.mjs.map +1 -1
- package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs +10 -9
- package/dist/esm/hooks/useLocalStorage/useLocalStorage.mjs.map +1 -1
- package/dist/esm/hooks/useLockCallback/useLockCallback.mjs +18 -17
- package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
- package/dist/esm/hooks/useLockScroll/useLockScroll.mjs +44 -39
- package/dist/esm/hooks/useLockScroll/useLockScroll.mjs.map +1 -1
- package/dist/esm/hooks/useLogger/useLogger.mjs +10 -9
- package/dist/esm/hooks/useLogger/useLogger.mjs.map +1 -1
- package/dist/esm/hooks/useLongPress/useLongPress.mjs +30 -26
- package/dist/esm/hooks/useLongPress/useLongPress.mjs.map +1 -1
- package/dist/esm/hooks/useMap/useMap.mjs +21 -20
- package/dist/esm/hooks/useMap/useMap.mjs.map +1 -1
- package/dist/esm/hooks/useMeasure/useMeasure.mjs +45 -32
- package/dist/esm/hooks/useMeasure/useMeasure.mjs.map +1 -1
- package/dist/esm/hooks/useMediaControls/useMediaControls.mjs +67 -68
- package/dist/esm/hooks/useMediaControls/useMediaControls.mjs.map +1 -1
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs +12 -17
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.mjs.map +1 -1
- package/dist/esm/hooks/useMemory/useMemory.mjs +20 -18
- package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
- package/dist/esm/hooks/useMergedRef/useMergedRef.mjs +23 -25
- package/dist/esm/hooks/useMergedRef/useMergedRef.mjs.map +1 -1
- package/dist/esm/hooks/useMount/useMount.mjs +7 -6
- package/dist/esm/hooks/useMount/useMount.mjs.map +1 -1
- package/dist/esm/hooks/useMouse/useMouse.mjs +61 -58
- package/dist/esm/hooks/useMouse/useMouse.mjs.map +1 -1
- package/dist/esm/hooks/useMutation/useMutation.mjs +63 -60
- package/dist/esm/hooks/useMutation/useMutation.mjs.map +1 -1
- package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs +35 -34
- package/dist/esm/hooks/useMutationObserver/useMutationObserver.mjs.map +1 -1
- package/dist/esm/hooks/useNetwork/useNetwork.mjs +47 -48
- package/dist/esm/hooks/useNetwork/useNetwork.mjs.map +1 -1
- package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs +20 -0
- package/dist/esm/hooks/useObjectUrl/useObjectUrl.mjs.map +1 -0
- package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs +50 -40
- package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.mjs.map +1 -1
- package/dist/esm/hooks/useOnce/useOnce.mjs +13 -13
- package/dist/esm/hooks/useOnce/useOnce.mjs.map +1 -1
- package/dist/esm/hooks/useOnline/useOnline.mjs +9 -8
- package/dist/esm/hooks/useOnline/useOnline.mjs.map +1 -1
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs +12 -12
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.mjs.map +1 -1
- package/dist/esm/hooks/useOptimistic/useOptimistic.mjs +14 -13
- package/dist/esm/hooks/useOptimistic/useOptimistic.mjs.map +1 -1
- package/dist/esm/hooks/useOrientation/useOrientation.mjs +30 -29
- package/dist/esm/hooks/useOrientation/useOrientation.mjs.map +1 -1
- package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs +28 -25
- package/dist/esm/hooks/useOtpCredential/useOtpCredential.mjs.map +1 -1
- package/dist/esm/hooks/usePageLeave/usePageLeave.mjs +15 -14
- package/dist/esm/hooks/usePageLeave/usePageLeave.mjs.map +1 -1
- package/dist/esm/hooks/usePaint/usePaint.mjs +139 -151
- package/dist/esm/hooks/usePaint/usePaint.mjs.map +1 -1
- package/dist/esm/hooks/useParallax/useParallax.mjs +90 -96
- package/dist/esm/hooks/useParallax/useParallax.mjs.map +1 -1
- package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs +29 -23
- package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.mjs.map +1 -1
- package/dist/esm/hooks/usePermission/usePermission.mjs +25 -27
- package/dist/esm/hooks/usePermission/usePermission.mjs.map +1 -1
- package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs +42 -38
- package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.mjs.map +1 -1
- package/dist/esm/hooks/usePointerLock/usePointerLock.mjs +31 -30
- package/dist/esm/hooks/usePointerLock/usePointerLock.mjs.map +1 -1
- package/dist/esm/hooks/usePostMessage/usePostMessage.mjs +22 -23
- package/dist/esm/hooks/usePostMessage/usePostMessage.mjs.map +1 -1
- package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs +8 -7
- package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.mjs.map +1 -1
- package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs +8 -7
- package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.mjs.map +1 -1
- package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs +6 -5
- package/dist/esm/hooks/usePreferredDark/usePreferredDark.mjs.map +1 -1
- package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs +9 -8
- package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.mjs.map +1 -1
- package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs +6 -5
- package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.mjs.map +1 -1
- package/dist/esm/hooks/usePrevious/usePrevious.mjs +9 -8
- package/dist/esm/hooks/usePrevious/usePrevious.mjs.map +1 -1
- package/dist/esm/hooks/useProgress/useProgress.mjs +28 -24
- package/dist/esm/hooks/useProgress/useProgress.mjs.map +1 -1
- package/dist/esm/hooks/useQuery/useQuery.mjs +61 -52
- package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
- package/dist/esm/hooks/useQueue/useQueue.mjs +23 -22
- package/dist/esm/hooks/useQueue/useQueue.mjs.map +1 -1
- package/dist/esm/hooks/useRaf/useRaf.mjs +32 -29
- package/dist/esm/hooks/useRaf/useRaf.mjs.map +1 -1
- package/dist/esm/hooks/useRafState/useRafState.mjs +12 -11
- package/dist/esm/hooks/useRafState/useRafState.mjs.map +1 -1
- package/dist/esm/hooks/useRefState/useRefState.mjs +24 -24
- package/dist/esm/hooks/useRefState/useRefState.mjs.map +1 -1
- package/dist/esm/hooks/useRenderCount/useRenderCount.mjs +11 -10
- package/dist/esm/hooks/useRenderCount/useRenderCount.mjs.map +1 -1
- package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs +14 -13
- package/dist/esm/hooks/useRenderInfo/useRenderInfo.mjs.map +1 -1
- package/dist/esm/hooks/useRerender/useRerender.mjs +6 -5
- package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs +33 -24
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.mjs.map +1 -1
- package/dist/esm/hooks/useRightClick/useRightClick.mjs +37 -34
- package/dist/esm/hooks/useRightClick/useRightClick.mjs.map +1 -1
- package/dist/esm/hooks/useScript/useScript.mjs +28 -31
- package/dist/esm/hooks/useScript/useScript.mjs.map +1 -1
- package/dist/esm/hooks/useScroll/useScroll.mjs +95 -81
- package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
- package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs +33 -34
- package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.mjs.map +1 -1
- package/dist/esm/hooks/useScrollTo/useScrollTo.mjs +33 -21
- package/dist/esm/hooks/useScrollTo/useScrollTo.mjs.map +1 -1
- package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs +10 -9
- package/dist/esm/hooks/useSessionStorage/useSessionStorage.mjs.map +1 -1
- package/dist/esm/hooks/useSet/useSet.mjs +30 -29
- package/dist/esm/hooks/useSet/useSet.mjs.map +1 -1
- package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs +20 -22
- package/dist/esm/hooks/useShallowEffect/useShallowEffect.mjs.map +1 -1
- package/dist/esm/hooks/useShare/useShare.mjs +18 -14
- package/dist/esm/hooks/useShare/useShare.mjs.map +1 -1
- package/dist/esm/hooks/useSize/useSize.mjs +40 -30
- package/dist/esm/hooks/useSize/useSize.mjs.map +1 -1
- package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs +34 -44
- package/dist/esm/hooks/useSpeechRecognition/useSpeechRecognition.mjs.map +1 -1
- package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs +65 -64
- package/dist/esm/hooks/useSpeechSynthesis/useSpeechSynthesis.mjs.map +1 -1
- package/dist/esm/hooks/useStateHistory/useStateHistory.mjs +96 -84
- package/dist/esm/hooks/useStateHistory/useStateHistory.mjs.map +1 -1
- package/dist/esm/hooks/useStep/useStep.mjs +27 -28
- package/dist/esm/hooks/useStep/useStep.mjs.map +1 -1
- package/dist/esm/hooks/useSticky/useSticky.mjs +36 -30
- package/dist/esm/hooks/useSticky/useSticky.mjs.map +1 -1
- package/dist/esm/hooks/useStopwatch/useStopwatch.mjs +59 -57
- package/dist/esm/hooks/useStopwatch/useStopwatch.mjs.map +1 -1
- package/dist/esm/hooks/useStorage/useStorage.mjs +61 -62
- package/dist/esm/hooks/useStorage/useStorage.mjs.map +1 -1
- package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +35 -30
- package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
- package/dist/esm/hooks/useTextSelection/useTextSelection.mjs +25 -27
- package/dist/esm/hooks/useTextSelection/useTextSelection.mjs.map +1 -1
- package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs +53 -52
- package/dist/esm/hooks/useTextareaAutosize/useTextareaAutosize.mjs.map +1 -1
- package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +18 -17
- package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
- package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs +21 -21
- package/dist/esm/hooks/useThrottleEffect/useThrottleEffect.mjs.map +1 -1
- package/dist/esm/hooks/useThrottleState/useThrottleState.mjs +10 -9
- package/dist/esm/hooks/useThrottleState/useThrottleState.mjs.map +1 -1
- package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs +12 -11
- package/dist/esm/hooks/useThrottleValue/useThrottleValue.mjs.map +1 -1
- package/dist/esm/hooks/useTime/useTime.mjs +14 -13
- package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
- package/dist/esm/hooks/useTimeout/useTimeout.mjs +19 -15
- package/dist/esm/hooks/useTimeout/useTimeout.mjs.map +1 -1
- package/dist/esm/hooks/useTimer/useTimer.mjs +61 -66
- package/dist/esm/hooks/useTimer/useTimer.mjs.map +1 -1
- package/dist/esm/hooks/useToggle/useToggle.mjs +12 -11
- package/dist/esm/hooks/useToggle/useToggle.mjs.map +1 -1
- package/dist/esm/hooks/useUnmount/useUnmount.mjs +11 -13
- package/dist/esm/hooks/useUnmount/useUnmount.mjs.map +1 -1
- package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs +66 -76
- package/dist/esm/hooks/useUrlSearchParam/useUrlSearchParam.mjs.map +1 -1
- package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs +50 -60
- package/dist/esm/hooks/useUrlSearchParams/useUrlSearchParams.mjs.map +1 -1
- package/dist/esm/hooks/useVibrate/useVibrate.mjs +28 -21
- package/dist/esm/hooks/useVibrate/useVibrate.mjs.map +1 -1
- package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs +30 -29
- package/dist/esm/hooks/useVirtualKeyboard/useVirtualKeyboard.mjs.map +1 -1
- package/dist/esm/hooks/useVisibility/useVisibility.mjs +41 -39
- package/dist/esm/hooks/useVisibility/useVisibility.mjs.map +1 -1
- package/dist/esm/hooks/useWakeLock/useWakeLock.mjs +28 -23
- package/dist/esm/hooks/useWakeLock/useWakeLock.mjs.map +1 -1
- package/dist/esm/hooks/useWebSocket/useWebSocket.mjs +38 -35
- package/dist/esm/hooks/useWebSocket/useWebSocket.mjs.map +1 -1
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs +7 -6
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
- package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs +14 -13
- package/dist/esm/hooks/useWindowFocus/useWindowFocus.mjs.map +1 -1
- package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs +29 -21
- package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
- package/dist/esm/hooks/useWindowSize/useWindowSize.mjs +24 -23
- package/dist/esm/hooks/useWindowSize/useWindowSize.mjs.map +1 -1
- package/dist/esm/hooks/useWizard/useWizard.mjs +25 -20
- package/dist/esm/hooks/useWizard/useWizard.mjs.map +1 -1
- package/dist/esm/index.mjs +173 -394
- package/dist/esm/utils/helpers/copy.mjs +18 -18
- package/dist/esm/utils/helpers/copy.mjs.map +1 -1
- package/dist/esm/utils/helpers/debounce.mjs +10 -10
- package/dist/esm/utils/helpers/debounce.mjs.map +1 -1
- package/dist/esm/utils/helpers/getDate.mjs +20 -16
- package/dist/esm/utils/helpers/getDate.mjs.map +1 -1
- package/dist/esm/utils/helpers/getRetry.mjs +6 -5
- package/dist/esm/utils/helpers/getRetry.mjs.map +1 -1
- package/dist/esm/utils/helpers/isTarget.mjs +10 -19
- package/dist/esm/utils/helpers/isTarget.mjs.map +1 -1
- package/dist/esm/utils/helpers/throttle.mjs +20 -20
- package/dist/esm/utils/helpers/throttle.mjs.map +1 -1
- package/dist/types/helpers/index.d.ts +1 -0
- package/dist/types/helpers/makeDestructurable/makeDestructurable.d.ts +16 -0
- package/dist/types/hooks/browser.d.ts +2 -0
- package/dist/types/hooks/useEventListener/useEventListener.d.ts +0 -22
- package/dist/types/hooks/useField/useField.d.ts +2 -2
- package/dist/types/hooks/useFileSystemAccess/useFileSystemAccess.d.ts +116 -0
- package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +4 -2
- package/dist/types/hooks/useObjectUrl/useObjectUrl.d.ts +24 -0
- package/dist/types/hooks/usePerformanceObserver/usePerformanceObserver.d.ts +1 -0
- package/dist/types/hooks/useScrollIntoView/useScrollIntoView.d.ts +1 -1
- package/dist/types/hooks/useWebSocket/useWebSocket.d.ts +1 -0
- package/package.json +5 -5
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHotkeys.mjs","sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\r\n\r\nimport type { HookTarget } from '@/utils/helpers';\r\n\r\nimport { isTarget } from '@/utils/helpers';\r\n\r\nimport type { StateRef } from '../useRefState/useRefState';\r\n\r\nimport { useEvent } from '../useEvent/useEvent';\r\nimport { useRefState } from '../useRefState/useRefState';\r\n\r\n/** The use hotkeys params type */\r\nexport interface UseHotkeysOptions {\r\n /** Alias map for hotkeys */\r\n alias?: Record<string, string>;\r\n /** Enable or disable the event listeners */\r\n enabled?: boolean;\r\n}\r\n\r\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\r\n hotkey\r\n .toLowerCase()\r\n .split(/[+_,\\-]/g)\r\n .map((key) => key.trim())\r\n .every((key) =>\r\n keys.find(\r\n (updatedKey) =>\r\n key === updatedKey.code.toLocaleLowerCase() ||\r\n key === updatedKey.key.toLocaleLowerCase() ||\r\n key === updatedKey.alias.toLocaleLowerCase()\r\n )\r\n );\r\n\r\n/** The hotkeys string type */\r\nexport type UseHotkeysHotkeys = string;\r\n\r\n/** The hotkey key information */\r\nexport interface UseHotkeysKey {\r\n /** The alias for the key */\r\n alias: string;\r\n /** The key code */\r\n code: string;\r\n /** The key value */\r\n key: string;\r\n}\r\n\r\n/** The use hotkeys target type */\r\nexport type UseHotkeysTarget = Element | React.RefObject<Element | null | undefined>;\r\n\r\nexport interface UseHotkeys {\r\n (\r\n target: UseHotkeysTarget,\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions\r\n ): void;\r\n\r\n <Target extends Element>(\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions,\r\n target?: never\r\n ): StateRef<Target>;\r\n}\r\n\r\n/**\r\n * @name useHotkeys\r\n * @description - Hook that listens for hotkeys\r\n * @category Sensors\r\n * @usage medium\r\n *\r\n * @overload\r\n * @param {HookTarget} [target=window] The target element to attach the event listener to\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {void}\r\n *\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {StateRef<Target>} A reference to the target element\r\n *\r\n * @example\r\n * const ref = useHotkeys('ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * const ref = useHotkeys('ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n */\r\nexport const useHotkeys = ((...params: any[]) => {\r\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\r\n const hotkeys = (target ? params[1] : params[0]) as UseHotkeysHotkeys;\r\n const callback = (target ? params[2] : params[1]) as (event: KeyboardEvent) => void;\r\n const options = (target ? params[3] : params[2]) as UseHotkeysOptions | undefined;\r\n\r\n const internalRef = useRefState(window);\r\n const keysRef = useRef<UseHotkeysKey[]>([]);\r\n const enabled = options?.enabled ?? true;\r\n\r\n const onKeyDown = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n\r\n if (keysRef.current.some(({ code }) => code === event.code)) return;\r\n\r\n const alias = options?.alias?.[event.key] ?? event.code;\r\n const updatedKeys = [...keysRef.current, { key: event.key, code: event.code, alias }];\r\n keysRef.current = updatedKeys;\r\n\r\n const hotkeysList = hotkeys.split(',').map((h) => h.trim());\r\n const isMatch = hotkeysList.some((hotkey) => isHotkeyMatch(hotkey, updatedKeys));\r\n if (!isMatch) return;\r\n event.preventDefault();\r\n callback(event);\r\n });\r\n\r\n const onKeyUp = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n keysRef.current = keysRef.current.filter(({ code }) => code !== event.code);\r\n });\r\n\r\n useEffect(() => {\r\n keysRef.current = [];\r\n if (!target && !internalRef.state && !enabled) return;\r\n\r\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\r\n if (!element) return;\r\n\r\n element.addEventListener('keydown', onKeyDown as EventListener);\r\n element.addEventListener('keyup', onKeyUp as EventListener);\r\n\r\n return () => {\r\n element.removeEventListener('keydown', onKeyDown as EventListener);\r\n element.removeEventListener('keyup', onKeyUp as EventListener);\r\n };\r\n }, [\r\n target && isTarget.getRawElement(target),\r\n internalRef.state,\r\n enabled,\r\n hotkeys,\r\n onKeyDown,\r\n onKeyUp\r\n ]);\r\n\r\n if (target) return;\r\n return internalRef;\r\n}) as UseHotkeys;\r\n"],"
|
|
1
|
+
{"version":3,"file":"useHotkeys.mjs","names":[],"sources":["../../../../src/hooks/useHotkeys/useHotkeys.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\r\n\r\nimport type { HookTarget } from '@/utils/helpers';\r\n\r\nimport { isTarget } from '@/utils/helpers';\r\n\r\nimport type { StateRef } from '../useRefState/useRefState';\r\n\r\nimport { useEvent } from '../useEvent/useEvent';\r\nimport { useRefState } from '../useRefState/useRefState';\r\n\r\n/** The use hotkeys params type */\r\nexport interface UseHotkeysOptions {\r\n /** Alias map for hotkeys */\r\n alias?: Record<string, string>;\r\n /** Enable or disable the event listeners */\r\n enabled?: boolean;\r\n}\r\n\r\nexport const isHotkeyMatch = (hotkey: string, keys: UseHotkeysKey[]) =>\r\n hotkey\r\n .toLowerCase()\r\n .split(/[+_,\\-]/g)\r\n .map((key) => key.trim())\r\n .every((key) =>\r\n keys.find(\r\n (updatedKey) =>\r\n key === updatedKey.code.toLocaleLowerCase() ||\r\n key === updatedKey.key.toLocaleLowerCase() ||\r\n key === updatedKey.alias.toLocaleLowerCase()\r\n )\r\n );\r\n\r\n/** The hotkeys string type */\r\nexport type UseHotkeysHotkeys = string;\r\n\r\n/** The hotkey key information */\r\nexport interface UseHotkeysKey {\r\n /** The alias for the key */\r\n alias: string;\r\n /** The key code */\r\n code: string;\r\n /** The key value */\r\n key: string;\r\n}\r\n\r\n/** The use hotkeys target type */\r\nexport type UseHotkeysTarget = Element | React.RefObject<Element | null | undefined>;\r\n\r\nexport interface UseHotkeys {\r\n (\r\n target: UseHotkeysTarget,\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions\r\n ): void;\r\n\r\n <Target extends Element>(\r\n hotkeys: UseHotkeysHotkeys,\r\n callback: (event: KeyboardEvent) => void,\r\n options?: UseHotkeysOptions,\r\n target?: never\r\n ): StateRef<Target>;\r\n}\r\n\r\n/**\r\n * @name useHotkeys\r\n * @description - Hook that listens for hotkeys\r\n * @category Sensors\r\n * @usage medium\r\n *\r\n * @overload\r\n * @param {HookTarget} [target=window] The target element to attach the event listener to\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {void}\r\n *\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * useHotkeys(ref, 'ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n *\r\n * @overload\r\n * @template Target The target element\r\n * @param {string} hotkeys The hotkey to listen for\r\n * @param {(event: KeyboardEvent) => void} callback The callback function to execute when hotkey is pressed\r\n * @param {Record<string, string>} [options.alias] Alias map for hotkeys\r\n * @param {boolean} [options.enabled=true] Enable or disable the event listeners\r\n * @returns {StateRef<Target>} A reference to the target element\r\n *\r\n * @example\r\n * const ref = useHotkeys('ctrl+a', () => console.log('hotkey pressed'));\r\n * @example\r\n * const ref = useHotkeys('ctrl+a, ctrl+b', () => console.log('hotkey pressed'));\r\n */\r\nexport const useHotkeys = ((...params: any[]) => {\r\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\r\n const hotkeys = (target ? params[1] : params[0]) as UseHotkeysHotkeys;\r\n const callback = (target ? params[2] : params[1]) as (event: KeyboardEvent) => void;\r\n const options = (target ? params[3] : params[2]) as UseHotkeysOptions | undefined;\r\n\r\n const internalRef = useRefState(window);\r\n const keysRef = useRef<UseHotkeysKey[]>([]);\r\n const enabled = options?.enabled ?? true;\r\n\r\n const onKeyDown = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n\r\n if (keysRef.current.some(({ code }) => code === event.code)) return;\r\n\r\n const alias = options?.alias?.[event.key] ?? event.code;\r\n const updatedKeys = [...keysRef.current, { key: event.key, code: event.code, alias }];\r\n keysRef.current = updatedKeys;\r\n\r\n const hotkeysList = hotkeys.split(',').map((h) => h.trim());\r\n const isMatch = hotkeysList.some((hotkey) => isHotkeyMatch(hotkey, updatedKeys));\r\n if (!isMatch) return;\r\n event.preventDefault();\r\n callback(event);\r\n });\r\n\r\n const onKeyUp = useEvent((event: KeyboardEvent) => {\r\n if (!enabled) return;\r\n keysRef.current = keysRef.current.filter(({ code }) => code !== event.code);\r\n });\r\n\r\n useEffect(() => {\r\n keysRef.current = [];\r\n if (!target && !internalRef.state && !enabled) return;\r\n\r\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\r\n if (!element) return;\r\n\r\n element.addEventListener('keydown', onKeyDown as EventListener);\r\n element.addEventListener('keyup', onKeyUp as EventListener);\r\n\r\n return () => {\r\n element.removeEventListener('keydown', onKeyDown as EventListener);\r\n element.removeEventListener('keyup', onKeyUp as EventListener);\r\n };\r\n }, [\r\n target && isTarget.getRawElement(target),\r\n internalRef.state,\r\n enabled,\r\n hotkeys,\r\n onKeyDown,\r\n onKeyUp\r\n ]);\r\n\r\n if (target) return;\r\n return internalRef;\r\n}) as UseHotkeys;\r\n"],"mappings":";;;;;AAmBA,IAAa,KAAiB,GAAgB,MAC5C,EACG,aAAa,CACb,MAAM,WAAW,CACjB,KAAK,MAAQ,EAAI,MAAM,CAAC,CACxB,OAAO,MACN,EAAK,MACF,MACC,MAAQ,EAAW,KAAK,mBAAmB,IAC3C,MAAQ,EAAW,IAAI,mBAAmB,IAC1C,MAAQ,EAAW,MAAM,mBAAmB,CAC/C,CACF,EAkEQ,MAAe,GAAG,MAAkB;CAC/C,IAAM,IAAU,EAAS,EAAO,GAAG,GAAG,EAAO,KAAK,KAAA,GAC5C,IAAW,IAAS,EAAO,KAAK,EAAO,IACvC,IAAY,IAAS,EAAO,KAAK,EAAO,IACxC,IAAW,IAAS,EAAO,KAAK,EAAO,IAEvC,IAAc,EAAY,OAAO,EACjC,IAAU,EAAwB,EAAE,CAAC,EACrC,IAAU,GAAS,WAAW,IAE9B,IAAY,GAAU,MAAyB;AAGnD,MAFI,CAAC,KAED,EAAQ,QAAQ,MAAM,EAAE,cAAW,MAAS,EAAM,KAAK,CAAE;EAE7D,IAAM,IAAQ,GAAS,QAAQ,EAAM,QAAQ,EAAM,MAC7C,IAAc,CAAC,GAAG,EAAQ,SAAS;GAAE,KAAK,EAAM;GAAK,MAAM,EAAM;GAAM;GAAO,CAAC;AACrF,IAAQ,UAAU,GAEE,EAAQ,MAAM,IAAI,CAAC,KAAK,MAAM,EAAE,MAAM,CAAC,CAC/B,MAAM,MAAW,EAAc,GAAQ,EAAY,CAAC,KAEhF,EAAM,gBAAgB,EACtB,EAAS,EAAM;GACf,EAEI,IAAU,GAAU,MAAyB;AAC5C,QACL,EAAQ,UAAU,EAAQ,QAAQ,QAAQ,EAAE,cAAW,MAAS,EAAM,KAAK;GAC3E;AAEF,aAAgB;AAEd,MADA,EAAQ,UAAU,EAAE,EAChB,CAAC,KAAU,CAAC,EAAY,SAAS,CAAC,EAAS;EAE/C,IAAM,IAAW,IAAS,EAAS,WAAW,EAAO,GAAG,EAAY;AAC/D,QAKL,QAHA,EAAQ,iBAAiB,WAAW,EAA2B,EAC/D,EAAQ,iBAAiB,SAAS,EAAyB,QAE9C;AAEX,GADA,EAAQ,oBAAoB,WAAW,EAA2B,EAClE,EAAQ,oBAAoB,SAAS,EAAyB;;IAE/D;EACD,KAAU,EAAS,cAAc,EAAO;EACxC,EAAY;EACZ;EACA;EACA;EACA;EACD,CAAC,EAEE,GACJ,QAAO"}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { isTarget as e } from "../../utils/helpers/isTarget.mjs";
|
|
2
|
+
import { useRefState as t } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { useEffect as n, useRef as r, useState as i } from "react";
|
|
4
|
+
//#region src/hooks/useHover/useHover.ts
|
|
5
|
+
var a = ((...a) => {
|
|
6
|
+
let o = e(a[0]) ? a[0] : void 0, s = o ? typeof a[1] == "object" ? a[1] : { onEntry: a[1] } : typeof a[0] == "object" ? a[0] : { onEntry: a[0] }, c = s?.enabled ?? !0, [l, u] = i(!1), d = t(), f = r(s);
|
|
7
|
+
return f.current = s, n(() => {
|
|
8
|
+
if (!c || !o && !d.state) return;
|
|
9
|
+
let t = o ? e.getElement(o) : d.current;
|
|
10
|
+
if (!t) return;
|
|
11
|
+
let n = (e) => {
|
|
12
|
+
f.current?.onEntry?.(e), u(!0);
|
|
13
|
+
}, r = (e) => {
|
|
14
|
+
f.current?.onLeave?.(e), u(!1);
|
|
15
|
+
};
|
|
16
|
+
return t.addEventListener("mouseenter", n), t.addEventListener("mouseleave", r), () => {
|
|
17
|
+
t.removeEventListener("mouseenter", n), t.removeEventListener("mouseleave", r);
|
|
18
|
+
};
|
|
19
|
+
}, [
|
|
20
|
+
c,
|
|
21
|
+
o && e.getRawElement(o),
|
|
22
|
+
d.state
|
|
23
|
+
]), o ? { value: l } : {
|
|
24
|
+
ref: d,
|
|
25
|
+
value: l
|
|
26
|
+
};
|
|
22
27
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=useHover.mjs.map
|
|
28
|
+
//#endregion
|
|
29
|
+
export { a as useHover };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=useHover.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHover.mjs","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The enabled state of the hook */\n enabled?: boolean;\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\n/** The use hover return type */\nexport interface UseHoverReturn {\n /** The value of the hover */\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): UseHoverReturn;\n\n (target: HookTarget, options?: UseHoverOptions): UseHoverReturn;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The value of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The value of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [enabled, target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { value: hovering };\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"
|
|
1
|
+
{"version":3,"file":"useHover.mjs","names":[],"sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The enabled state of the hook */\n enabled?: boolean;\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\n/** The use hover return type */\nexport interface UseHoverReturn {\n /** The value of the hover */\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): UseHoverReturn;\n\n (target: HookTarget, options?: UseHoverOptions): UseHoverReturn;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): UseHoverReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Elements\n * @usage medium\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The value of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The value of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The object with the ref and the value of the hover\n *\n * @example\n * const { ref, value } = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [enabled, target && isTarget.getRawElement(target), internalRef.state]);\n\n if (target) return { value: hovering };\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"mappings":";;;;AAkFA,IAAa,MAAa,GAAG,MAAkB;CAC7C,IAAM,IAAU,EAAS,EAAO,GAAG,GAAG,EAAO,KAAK,KAAA,GAE5C,IACJ,IACI,OAAO,EAAO,MAAO,WACnB,EAAO,KACP,EAAE,SAAS,EAAO,IAAI,GACxB,OAAO,EAAO,MAAO,WACnB,EAAO,KACP,EAAE,SAAS,EAAO,IAAI,EAGxB,IAAU,GAAS,WAAW,IAE9B,CAAC,GAAU,KAAe,EAAS,GAAM,EACzC,IAAc,GAAsB,EACpC,IAAqB,EAAO,EAAQ;AA8B1C,QA7BA,EAAmB,UAAU,GAE7B,QAAgB;AACd,MAAI,CAAC,KAAY,CAAC,KAAU,CAAC,EAAY,MAAQ;EAEjD,IAAM,IAAW,IAAS,EAAS,WAAW,EAAO,GAAG,EAAY;AAEpE,MAAI,CAAC,EAAS;EAEd,IAAM,KAAgB,MAAiB;AAErC,GADA,EAAmB,SAAS,UAAU,EAAM,EAC5C,EAAY,GAAK;KAGb,KAAgB,MAAiB;AAErC,GADA,EAAmB,SAAS,UAAU,EAAM,EAC5C,EAAY,GAAM;;AAMpB,SAHA,EAAQ,iBAAiB,cAAc,EAAa,EACpD,EAAQ,iBAAiB,cAAc,EAAa,QAEvC;AAEX,GADA,EAAQ,oBAAoB,cAAc,EAAa,EACvD,EAAQ,oBAAoB,cAAc,EAAa;;IAExD;EAAC;EAAS,KAAU,EAAS,cAAc,EAAO;EAAE,EAAY;EAAM,CAAC,EAEtE,IAAe,EAAE,OAAO,GAAU,GAC/B;EACL,KAAK;EACL,OAAO;EACR"}
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { throttle as e } from "../../utils/helpers/throttle.mjs";
|
|
2
|
+
import { useEffect as t, useState as n } from "react";
|
|
3
|
+
//#region src/hooks/useIdle/useIdle.ts
|
|
4
|
+
var r = [
|
|
5
|
+
"mousemove",
|
|
6
|
+
"mousedown",
|
|
7
|
+
"keydown",
|
|
8
|
+
"touchstart",
|
|
9
|
+
"wheel",
|
|
10
|
+
"resize"
|
|
11
|
+
], i = 6e4, a = (a = i, { initialValue: o = !1, events: s = r } = {}) => {
|
|
12
|
+
let [c, l] = n(o), [u, d] = n(Date.now());
|
|
13
|
+
return t(() => {
|
|
14
|
+
let t, n = () => l(!0), r = e(() => {
|
|
15
|
+
l(!1), d(Date.now()), clearTimeout(t), t = setTimeout(n, a);
|
|
16
|
+
}, 500), i = () => {
|
|
17
|
+
document.hidden || r();
|
|
18
|
+
};
|
|
19
|
+
return t = setTimeout(n, a), s.forEach((e) => window.addEventListener(e, r)), document.addEventListener("visibilitychange", i), () => {
|
|
20
|
+
s.forEach((e) => window.addEventListener(e, r)), document.removeEventListener("visibilitychange", i), clearTimeout(t);
|
|
21
|
+
};
|
|
22
|
+
}, [a, s]), {
|
|
23
|
+
idle: c,
|
|
24
|
+
lastActive: u
|
|
25
|
+
};
|
|
23
26
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=useIdle.mjs.map
|
|
27
|
+
//#endregion
|
|
28
|
+
export { a as useIdle };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=useIdle.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIdle.mjs","sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\n/** The use idle options type */\nexport interface UseIdleOptions {\n /** The idle events */\n events?: Array<keyof DocumentEventMap>;\n /** The idle state */\n initialValue?: boolean;\n}\n\nconst IDLE_EVENTS = [\n 'mousemove',\n 'mousedown',\n 'keydown',\n 'touchstart',\n 'wheel',\n 'resize'\n] satisfies Array<keyof DocumentEventMap>;\nconst ONE_MINUTE = 60e3;\n\n/** The use idle return type */\nexport interface UseIdleReturn {\n /** The idle state */\n idle: boolean;\n /** The last active time */\n lastActive: number;\n}\n\n/**\n * @name useIdle\n * @description - Hook that defines the logic when the user is idle\n * @category Sensors\n * @usage low\n *\n * @param {number} [milliseconds=ONE_MINUTE] The idle time in milliseconds\n * @param {boolean} [options.initialState=false] The options for the hook\n * @param {Array<keyof WindowEventMap>} [options.events=IDLE_EVENTS]\n * @returns {UseIdleReturn} An object containing the idle state and the last active time\n *\n * @example\n * const { idle, lastActive } = useIdle();\n */\nexport const useIdle = (\n milliseconds = ONE_MINUTE,\n { initialValue = false, events = IDLE_EVENTS }: UseIdleOptions = {}\n): UseIdleReturn => {\n const [idle, setIdle] = useState(initialValue);\n const [lastActive, setLastActive] = useState(Date.now());\n\n useEffect(() => {\n let timeoutId: ReturnType<typeof setTimeout>;\n const onTimeout = () => setIdle(true);\n\n const onEvent = throttle(() => {\n setIdle(false);\n setLastActive(Date.now());\n clearTimeout(timeoutId);\n timeoutId = setTimeout(onTimeout, milliseconds);\n }, 500);\n\n const onVisibilitychange = () => {\n if (!document.hidden) onEvent();\n };\n\n timeoutId = setTimeout(onTimeout, milliseconds);\n\n events.forEach((event) => window.addEventListener(event, onEvent));\n document.addEventListener('visibilitychange', onVisibilitychange);\n\n return () => {\n events.forEach((event) => window.addEventListener(event, onEvent));\n document.removeEventListener('visibilitychange', onVisibilitychange);\n clearTimeout(timeoutId);\n };\n }, [milliseconds, events]);\n\n return { idle, lastActive };\n};\n"],"
|
|
1
|
+
{"version":3,"file":"useIdle.mjs","names":[],"sources":["../../../../src/hooks/useIdle/useIdle.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { throttle } from '@/utils/helpers';\n\n/** The use idle options type */\nexport interface UseIdleOptions {\n /** The idle events */\n events?: Array<keyof DocumentEventMap>;\n /** The idle state */\n initialValue?: boolean;\n}\n\nconst IDLE_EVENTS = [\n 'mousemove',\n 'mousedown',\n 'keydown',\n 'touchstart',\n 'wheel',\n 'resize'\n] satisfies Array<keyof DocumentEventMap>;\nconst ONE_MINUTE = 60e3;\n\n/** The use idle return type */\nexport interface UseIdleReturn {\n /** The idle state */\n idle: boolean;\n /** The last active time */\n lastActive: number;\n}\n\n/**\n * @name useIdle\n * @description - Hook that defines the logic when the user is idle\n * @category Sensors\n * @usage low\n *\n * @param {number} [milliseconds=ONE_MINUTE] The idle time in milliseconds\n * @param {boolean} [options.initialState=false] The options for the hook\n * @param {Array<keyof WindowEventMap>} [options.events=IDLE_EVENTS]\n * @returns {UseIdleReturn} An object containing the idle state and the last active time\n *\n * @example\n * const { idle, lastActive } = useIdle();\n */\nexport const useIdle = (\n milliseconds = ONE_MINUTE,\n { initialValue = false, events = IDLE_EVENTS }: UseIdleOptions = {}\n): UseIdleReturn => {\n const [idle, setIdle] = useState(initialValue);\n const [lastActive, setLastActive] = useState(Date.now());\n\n useEffect(() => {\n let timeoutId: ReturnType<typeof setTimeout>;\n const onTimeout = () => setIdle(true);\n\n const onEvent = throttle(() => {\n setIdle(false);\n setLastActive(Date.now());\n clearTimeout(timeoutId);\n timeoutId = setTimeout(onTimeout, milliseconds);\n }, 500);\n\n const onVisibilitychange = () => {\n if (!document.hidden) onEvent();\n };\n\n timeoutId = setTimeout(onTimeout, milliseconds);\n\n events.forEach((event) => window.addEventListener(event, onEvent));\n document.addEventListener('visibilitychange', onVisibilitychange);\n\n return () => {\n events.forEach((event) => window.addEventListener(event, onEvent));\n document.removeEventListener('visibilitychange', onVisibilitychange);\n clearTimeout(timeoutId);\n };\n }, [milliseconds, events]);\n\n return { idle, lastActive };\n};\n"],"mappings":";;;AAYA,IAAM,IAAc;CAClB;CACA;CACA;CACA;CACA;CACA;CACD,EACK,IAAa,KAwBN,KACX,IAAe,GACf,EAAE,kBAAe,IAAO,YAAS,MAAgC,EAAE,KACjD;CAClB,IAAM,CAAC,GAAM,KAAW,EAAS,EAAa,EACxC,CAAC,GAAY,KAAiB,EAAS,KAAK,KAAK,CAAC;AA6BxD,QA3BA,QAAgB;EACd,IAAI,GACE,UAAkB,EAAQ,GAAK,EAE/B,IAAU,QAAe;AAI7B,GAHA,EAAQ,GAAM,EACd,EAAc,KAAK,KAAK,CAAC,EACzB,aAAa,EAAU,EACvB,IAAY,WAAW,GAAW,EAAa;KAC9C,IAAI,EAED,UAA2B;AAC/B,GAAK,SAAS,UAAQ,GAAS;;AAQjC,SALA,IAAY,WAAW,GAAW,EAAa,EAE/C,EAAO,SAAS,MAAU,OAAO,iBAAiB,GAAO,EAAQ,CAAC,EAClE,SAAS,iBAAiB,oBAAoB,EAAmB,QAEpD;AAGX,GAFA,EAAO,SAAS,MAAU,OAAO,iBAAiB,GAAO,EAAQ,CAAC,EAClE,SAAS,oBAAoB,oBAAoB,EAAmB,EACpE,aAAa,EAAU;;IAExB,CAAC,GAAc,EAAO,CAAC,EAEnB;EAAE;EAAM;EAAY"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import { useQuery as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=useImage.mjs.map
|
|
1
|
+
import { useQuery as e } from "../useQuery/useQuery.mjs";
|
|
2
|
+
//#region src/hooks/useImage/useImage.ts
|
|
3
|
+
var t = async (e, t = {}) => new Promise((n, r) => {
|
|
4
|
+
let i = new Image(), { srcset: a, sizes: o, class: s, loading: c, crossorigin: l, referrerPolicy: u } = t;
|
|
5
|
+
i.src = e, a && (i.srcset = a), o && (i.sizes = o), s && (i.className = s), c && (i.loading = c), l && (i.crossOrigin = l), u && (i.referrerPolicy = u), i.onload = () => n(i), i.onerror = r;
|
|
6
|
+
}), n = (n, r) => e(() => t(n, {
|
|
7
|
+
alt: r?.alt,
|
|
8
|
+
class: r?.class,
|
|
9
|
+
crossorigin: r?.crossorigin,
|
|
10
|
+
loading: r?.loading,
|
|
11
|
+
referrerPolicy: r?.referrerPolicy,
|
|
12
|
+
sizes: r?.sizes,
|
|
13
|
+
srcset: r?.srcset
|
|
14
|
+
}), {
|
|
15
|
+
keys: [n, ...r?.keys ?? []],
|
|
16
|
+
onSuccess: r?.onSuccess,
|
|
17
|
+
onError: r?.onError,
|
|
18
|
+
refetchInterval: r?.refetchInterval,
|
|
19
|
+
retry: r?.retry
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
export { n as useImage };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=useImage.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImage.mjs","sources":["../../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import type { UseQueryOptions, UseQueryReturn } from '../useQuery/useQuery';\r\n\r\nimport { useQuery } from '../useQuery/useQuery';\r\n\r\n/** The use image options */\r\nexport interface UseImageOptions {\r\n /** The alt of the image */\r\n alt?: string;\r\n /** The class of the image */\r\n class?: string;\r\n /** The crossorigin of the image */\r\n crossorigin?: string;\r\n /** The loading of the image */\r\n loading?: HTMLImageElement['loading'];\r\n /** The referrer policy of the image */\r\n referrerPolicy?: HTMLImageElement['referrerPolicy'];\r\n /** The sizes of the image */\r\n sizes?: string;\r\n /** The srcset of the image */\r\n srcset?: string;\r\n}\r\n\r\n/** The use image return type */\r\nexport type UseImageReturn = UseQueryReturn<HTMLImageElement>;\r\n\r\nconst loadImage = async (src: string, options: UseImageOptions = {}): Promise<HTMLImageElement> =>\r\n new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const { srcset, sizes, class: className, loading, crossorigin, referrerPolicy } = options;\r\n\r\n img.src = src;\r\n if (srcset) img.srcset = srcset;\r\n if (sizes) img.sizes = sizes;\r\n if (className) img.className = className;\r\n if (loading) img.loading = loading;\r\n if (crossorigin) img.crossOrigin = crossorigin;\r\n\r\n if (referrerPolicy) img.referrerPolicy = referrerPolicy;\r\n\r\n img.onload = () => resolve(img);\r\n img.onerror = reject;\r\n });\r\n\r\n/**\r\n * @name useImage\r\n * @description - Hook that load an image in the browser\r\n * @category Elements\r\n * @usage low\r\n *\r\n * @param {string} src The source of the image\r\n * @param {string} [options.srcset] The srcset of the image\r\n * @param {string} [options.sizes] The sizes of the image\r\n * @param {string} [options.alt] The alt of the image\r\n * @param {string} [options.class] The class of the image\r\n * @param {HTMLImageElement['loading']} [options.loading] The loading of the image\r\n * @param {string} [options.crossorigin] The crossorigin of the image\r\n * @param {HTMLImageElement['referrerPolicy']} [options.referrerPolicy] The referrerPolicy of the image\r\n * @param {DependencyList} [options.keys] The dependencies for the hook\r\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\r\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\r\n * @param {number} [options.refetchInterval] The refetch interval\r\n * @param {boolean | number} [options.retry] The retry count of requests\r\n * @returns {UseImageReturn} An object with the state of the image\r\n *\r\n * @example\r\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useImage('https://example.com/image.png');\r\n */\r\nexport const useImage = (\r\n src: string,\r\n options?: UseImageOptions &\r\n Omit<\r\n UseQueryOptions<HTMLImageElement, HTMLImageElement>,\r\n 'initialData' | 'placeholderData' | 'select'\r\n >\r\n) =>\r\n useQuery(\r\n () =>\r\n loadImage(src, {\r\n alt: options?.alt,\r\n class: options?.class,\r\n crossorigin: options?.crossorigin,\r\n loading: options?.loading,\r\n referrerPolicy: options?.referrerPolicy,\r\n sizes: options?.sizes,\r\n srcset: options?.srcset\r\n }),\r\n {\r\n keys: [src, ...(options?.keys ?? [])],\r\n onSuccess: options?.onSuccess,\r\n onError: options?.onError,\r\n refetchInterval: options?.refetchInterval,\r\n retry: options?.retry\r\n }\r\n );\r\n"],"
|
|
1
|
+
{"version":3,"file":"useImage.mjs","names":[],"sources":["../../../../src/hooks/useImage/useImage.ts"],"sourcesContent":["import type { UseQueryOptions, UseQueryReturn } from '../useQuery/useQuery';\r\n\r\nimport { useQuery } from '../useQuery/useQuery';\r\n\r\n/** The use image options */\r\nexport interface UseImageOptions {\r\n /** The alt of the image */\r\n alt?: string;\r\n /** The class of the image */\r\n class?: string;\r\n /** The crossorigin of the image */\r\n crossorigin?: string;\r\n /** The loading of the image */\r\n loading?: HTMLImageElement['loading'];\r\n /** The referrer policy of the image */\r\n referrerPolicy?: HTMLImageElement['referrerPolicy'];\r\n /** The sizes of the image */\r\n sizes?: string;\r\n /** The srcset of the image */\r\n srcset?: string;\r\n}\r\n\r\n/** The use image return type */\r\nexport type UseImageReturn = UseQueryReturn<HTMLImageElement>;\r\n\r\nconst loadImage = async (src: string, options: UseImageOptions = {}): Promise<HTMLImageElement> =>\r\n new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const { srcset, sizes, class: className, loading, crossorigin, referrerPolicy } = options;\r\n\r\n img.src = src;\r\n if (srcset) img.srcset = srcset;\r\n if (sizes) img.sizes = sizes;\r\n if (className) img.className = className;\r\n if (loading) img.loading = loading;\r\n if (crossorigin) img.crossOrigin = crossorigin;\r\n\r\n if (referrerPolicy) img.referrerPolicy = referrerPolicy;\r\n\r\n img.onload = () => resolve(img);\r\n img.onerror = reject;\r\n });\r\n\r\n/**\r\n * @name useImage\r\n * @description - Hook that load an image in the browser\r\n * @category Elements\r\n * @usage low\r\n *\r\n * @param {string} src The source of the image\r\n * @param {string} [options.srcset] The srcset of the image\r\n * @param {string} [options.sizes] The sizes of the image\r\n * @param {string} [options.alt] The alt of the image\r\n * @param {string} [options.class] The class of the image\r\n * @param {HTMLImageElement['loading']} [options.loading] The loading of the image\r\n * @param {string} [options.crossorigin] The crossorigin of the image\r\n * @param {HTMLImageElement['referrerPolicy']} [options.referrerPolicy] The referrerPolicy of the image\r\n * @param {DependencyList} [options.keys] The dependencies for the hook\r\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\r\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\r\n * @param {number} [options.refetchInterval] The refetch interval\r\n * @param {boolean | number} [options.retry] The retry count of requests\r\n * @returns {UseImageReturn} An object with the state of the image\r\n *\r\n * @example\r\n * const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useImage('https://example.com/image.png');\r\n */\r\nexport const useImage = (\r\n src: string,\r\n options?: UseImageOptions &\r\n Omit<\r\n UseQueryOptions<HTMLImageElement, HTMLImageElement>,\r\n 'initialData' | 'placeholderData' | 'select'\r\n >\r\n) =>\r\n useQuery(\r\n () =>\r\n loadImage(src, {\r\n alt: options?.alt,\r\n class: options?.class,\r\n crossorigin: options?.crossorigin,\r\n loading: options?.loading,\r\n referrerPolicy: options?.referrerPolicy,\r\n sizes: options?.sizes,\r\n srcset: options?.srcset\r\n }),\r\n {\r\n keys: [src, ...(options?.keys ?? [])],\r\n onSuccess: options?.onSuccess,\r\n onError: options?.onError,\r\n refetchInterval: options?.refetchInterval,\r\n retry: options?.retry\r\n }\r\n );\r\n"],"mappings":";;AAyBA,IAAM,IAAY,OAAO,GAAa,IAA2B,EAAE,KACjE,IAAI,SAAS,GAAS,MAAW;CAC/B,IAAM,IAAM,IAAI,OAAO,EACjB,EAAE,WAAQ,UAAO,OAAO,GAAW,YAAS,gBAAa,sBAAmB;AAYlF,CAVA,EAAI,MAAM,GACN,MAAQ,EAAI,SAAS,IACrB,MAAO,EAAI,QAAQ,IACnB,MAAW,EAAI,YAAY,IAC3B,MAAS,EAAI,UAAU,IACvB,MAAa,EAAI,cAAc,IAE/B,MAAgB,EAAI,iBAAiB,IAEzC,EAAI,eAAe,EAAQ,EAAI,EAC/B,EAAI,UAAU;EACd,EA0BS,KACX,GACA,MAMA,QAEI,EAAU,GAAK;CACb,KAAK,GAAS;CACd,OAAO,GAAS;CAChB,aAAa,GAAS;CACtB,SAAS,GAAS;CAClB,gBAAgB,GAAS;CACzB,OAAO,GAAS;CAChB,QAAQ,GAAS;CAClB,CAAC,EACJ;CACE,MAAM,CAAC,GAAK,GAAI,GAAS,QAAQ,EAAE,CAAE;CACrC,WAAW,GAAS;CACpB,SAAS,GAAS;CAClB,iBAAiB,GAAS;CAC1B,OAAO,GAAS;CACjB,CACF"}
|
|
@@ -1,33 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
import { isTarget as e } from "../../utils/helpers/isTarget.mjs";
|
|
2
|
+
import { useRefState as t } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { useEffect as n, useRef as r, useState as i } from "react";
|
|
4
|
+
//#region src/hooks/useInfiniteScroll/useInfiniteScroll.ts
|
|
5
|
+
var a = ((...a) => {
|
|
6
|
+
let o = e(a[0]) ? a[0] : void 0, s = o ? a[1] : a[0], c = o ? a[2] : a[1], l = c?.direction ?? "bottom", u = c?.distance ?? 10, [d, f] = i(!1), p = t(), m = r(s);
|
|
7
|
+
m.current = s;
|
|
8
|
+
let h = r(d);
|
|
9
|
+
return h.current = d, n(() => {
|
|
10
|
+
if (!o && !p.state) return;
|
|
11
|
+
let t = o ? e.getElement(o) : p.current;
|
|
12
|
+
if (!t) return;
|
|
13
|
+
let n = async (e) => {
|
|
14
|
+
if (h.current) return;
|
|
15
|
+
let { clientHeight: t, scrollHeight: n, scrollTop: r, clientWidth: i, scrollWidth: a, scrollLeft: o } = e.target;
|
|
16
|
+
({
|
|
17
|
+
bottom: n - (r + t),
|
|
18
|
+
top: r,
|
|
19
|
+
right: a - (o + i),
|
|
20
|
+
left: o
|
|
21
|
+
})[l] <= u && (f(!0), await m.current(e), f(!1));
|
|
22
|
+
};
|
|
23
|
+
return t.addEventListener("scroll", n), () => {
|
|
24
|
+
t.removeEventListener("scroll", n);
|
|
25
|
+
};
|
|
26
|
+
}, [
|
|
27
|
+
o && e.getRawElement(o),
|
|
28
|
+
p.state,
|
|
29
|
+
l,
|
|
30
|
+
u
|
|
31
|
+
]), o ? { loading: d } : {
|
|
32
|
+
ref: p,
|
|
33
|
+
loading: d
|
|
34
|
+
};
|
|
29
35
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=useInfiniteScroll.mjs.map
|
|
36
|
+
//#endregion
|
|
37
|
+
export { a as useInfiniteScroll };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=useInfiniteScroll.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfiniteScroll.mjs","sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The direction to trigger the callback */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /** The distance in pixels to trigger the callback */\n distance?: number;\n}\n\n/** The use infinite scroll return type */\nexport interface UseInfiniteScrollReturn {\n /** The loading state of the infinite scroll */\n loading: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseInfiniteScroll {\n (\n target: HookTarget,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): UseInfiniteScrollReturn;\n\n <Target extends Element>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): UseInfiniteScrollReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n * @usage medium\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {UseInfiniteScrollReturn & { ref: StateRef<Target> }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @param {HookTarget} target The target element to detect infinite scroll for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {UseInfiniteScrollReturn} An object containing the ref and loading\n *\n * @example\n * const { loading } = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: Event) => void;\n const options = (target ? params[2] : params[1]) as UseInfiniteScrollOptions | undefined;\n\n const direction = options?.direction ?? 'bottom';\n const distance = options?.distance ?? 10;\n\n const [loading, setIsLoading] = useState(false);\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalLoadingRef = useRef(loading);\n internalLoadingRef.current = loading;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onLoadMore = async (event: Event) => {\n if (internalLoadingRef.current) return;\n\n const { clientHeight, scrollHeight, scrollTop, clientWidth, scrollWidth, scrollLeft } =\n event.target as Element;\n const scrollBottom = scrollHeight - (scrollTop + clientHeight);\n const scrollRight = scrollWidth - (scrollLeft + clientWidth);\n\n const distances = {\n bottom: scrollBottom,\n top: scrollTop,\n right: scrollRight,\n left: scrollLeft\n };\n\n if (distances[direction] <= distance) {\n setIsLoading(true);\n await internalCallbackRef.current(event);\n setIsLoading(false);\n }\n };\n\n element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, direction, distance]);\n\n if (target) return { loading };\n return {\n ref: internalRef,\n loading\n };\n}) as UseInfiniteScroll;\n"],"
|
|
1
|
+
{"version":3,"file":"useInfiniteScroll.mjs","names":[],"sources":["../../../../src/hooks/useInfiniteScroll/useInfiniteScroll.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use infinite scroll options type */\nexport interface UseInfiniteScrollOptions {\n /** The direction to trigger the callback */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /** The distance in pixels to trigger the callback */\n distance?: number;\n}\n\n/** The use infinite scroll return type */\nexport interface UseInfiniteScrollReturn {\n /** The loading state of the infinite scroll */\n loading: boolean;\n /** The ref to attach to the element */\n ref: StateRef<Element>;\n}\n\nexport interface UseInfiniteScroll {\n (\n target: HookTarget,\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions\n ): UseInfiniteScrollReturn;\n\n <Target extends Element>(\n callback: (event: Event) => void,\n options?: UseInfiniteScrollOptions,\n target?: never\n ): UseInfiniteScrollReturn & { ref: StateRef<Target> };\n}\n\n/**\n * @name useInfiniteScroll\n * @description - Hook that defines the logic for infinite scroll\n * @category Sensors\n * @usage medium\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {UseInfiniteScrollReturn & { ref: StateRef<Target> }} An object containing the ref and loading\n *\n * @example\n * const { ref, loading } = useInfiniteScroll(() => console.log('infinite scroll'));\n *\n * @overload\n * @param {HookTarget} target The target element to detect infinite scroll for\n * @param {(event: Event) => void} callback The callback to execute when a click outside the target is detected\n * @param {number} [options.distance=10] The distance in pixels to trigger the callback\n * @param {string} [options.direction='bottom'] The direction to trigger the callback\n * @returns {UseInfiniteScrollReturn} An object containing the ref and loading\n *\n * @example\n * const { loading } = useInfiniteScroll(ref, () => console.log('infinite scroll'));\n */\nexport const useInfiniteScroll = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const callback = (target ? params[1] : params[0]) as (event: Event) => void;\n const options = (target ? params[2] : params[1]) as UseInfiniteScrollOptions | undefined;\n\n const direction = options?.direction ?? 'bottom';\n const distance = options?.distance ?? 10;\n\n const [loading, setIsLoading] = useState(false);\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n const internalLoadingRef = useRef(loading);\n internalLoadingRef.current = loading;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? isTarget.getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onLoadMore = async (event: Event) => {\n if (internalLoadingRef.current) return;\n\n const { clientHeight, scrollHeight, scrollTop, clientWidth, scrollWidth, scrollLeft } =\n event.target as Element;\n const scrollBottom = scrollHeight - (scrollTop + clientHeight);\n const scrollRight = scrollWidth - (scrollLeft + clientWidth);\n\n const distances = {\n bottom: scrollBottom,\n top: scrollTop,\n right: scrollRight,\n left: scrollLeft\n };\n\n if (distances[direction] <= distance) {\n setIsLoading(true);\n await internalCallbackRef.current(event);\n setIsLoading(false);\n }\n };\n\n element.addEventListener('scroll', onLoadMore);\n\n return () => {\n element.removeEventListener('scroll', onLoadMore);\n };\n }, [target && isTarget.getRawElement(target), internalRef.state, direction, distance]);\n\n if (target) return { loading };\n return {\n ref: internalRef,\n loading\n };\n}) as UseInfiniteScroll;\n"],"mappings":";;;;AAkEA,IAAa,MAAsB,GAAG,MAAkB;CACtD,IAAM,IAAU,EAAS,EAAO,GAAG,GAAG,EAAO,KAAK,KAAA,GAC5C,IAAY,IAAS,EAAO,KAAK,EAAO,IACxC,IAAW,IAAS,EAAO,KAAK,EAAO,IAEvC,IAAY,GAAS,aAAa,UAClC,IAAW,GAAS,YAAY,IAEhC,CAAC,GAAS,KAAgB,EAAS,GAAM,EAEzC,IAAc,GAAsB,EACpC,IAAsB,EAAO,EAAS;AAC5C,GAAoB,UAAU;CAC9B,IAAM,IAAqB,EAAO,EAAQ;AAsC1C,QArCA,EAAmB,UAAU,GAE7B,QAAgB;AACd,MAAI,CAAC,KAAU,CAAC,EAAY,MAAO;EACnC,IAAM,IAAW,IAAS,EAAS,WAAW,EAAO,GAAG,EAAY;AACpE,MAAI,CAAC,EAAS;EAEd,IAAM,IAAa,OAAO,MAAiB;AACzC,OAAI,EAAmB,QAAS;GAEhC,IAAM,EAAE,iBAAc,iBAAc,cAAW,gBAAa,gBAAa,kBACvE,EAAM;AAWR,IAPkB;IAChB,QAJmB,KAAgB,IAAY;IAK/C,KAAK;IACL,OALkB,KAAe,IAAa;IAM9C,MAAM;IACP,EAEa,MAAc,MAC1B,EAAa,GAAK,EAClB,MAAM,EAAoB,QAAQ,EAAM,EACxC,EAAa,GAAM;;AAMvB,SAFA,EAAQ,iBAAiB,UAAU,EAAW,QAEjC;AACX,KAAQ,oBAAoB,UAAU,EAAW;;IAElD;EAAC,KAAU,EAAS,cAAc,EAAO;EAAE,EAAY;EAAO;EAAW;EAAS,CAAC,EAElF,IAAe,EAAE,YAAS,GACvB;EACL,KAAK;EACL;EACD"}
|
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
import { isTarget as e } from "../../utils/helpers/isTarget.mjs";
|
|
2
|
+
import { useRefState as t } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { useEffect as n, useRef as r, useState as i } from "react";
|
|
4
|
+
//#region src/hooks/useIntersectionObserver/useIntersectionObserver.ts
|
|
5
|
+
var a = ((...a) => {
|
|
6
|
+
let o = e(a[0]) ? a[0] : void 0, s = o ? typeof a[1] == "object" ? a[1] : { onChange: a[1] } : typeof a[0] == "object" ? a[0] : { onChange: a[0] }, c = s?.onChange, l = s?.enabled ?? !0, [u, d] = i(), [f, p] = i(), m = t(), h = r(c);
|
|
7
|
+
return h.current = c, n(() => {
|
|
8
|
+
if (!l || !o && !m.state) return;
|
|
9
|
+
let t = o ? e.getElement(o) : m.current;
|
|
10
|
+
if (!t) return;
|
|
11
|
+
let n = new IntersectionObserver((e, t) => {
|
|
12
|
+
p(e), h.current?.(e, t);
|
|
13
|
+
}, {
|
|
14
|
+
...s,
|
|
15
|
+
root: s?.root ? e.getElement(s.root) : document
|
|
16
|
+
});
|
|
17
|
+
return d(n), n.observe(t), () => {
|
|
18
|
+
n.disconnect();
|
|
19
|
+
};
|
|
20
|
+
}, [
|
|
21
|
+
o && e.getRawElement(o),
|
|
22
|
+
m.state,
|
|
23
|
+
s?.rootMargin,
|
|
24
|
+
s?.threshold,
|
|
25
|
+
s?.root,
|
|
26
|
+
l
|
|
27
|
+
]), o ? {
|
|
28
|
+
observer: u,
|
|
29
|
+
entries: f
|
|
30
|
+
} : {
|
|
31
|
+
observer: u,
|
|
32
|
+
ref: m,
|
|
33
|
+
entries: f
|
|
34
|
+
};
|
|
34
35
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=useIntersectionObserver.mjs.map
|
|
36
|
+
//#endregion
|
|
37
|
+
export { a as useIntersectionObserver };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=useIntersectionObserver.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntersectionObserver.mjs","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer callback type */\nexport type UseIntersectionObserverCallback = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver\n) => void;\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection observer */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseIntersectionObserverCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n /** The intersection observer entry */\n entries?: IntersectionObserverEntry[];\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends Element>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;\n\n <Target extends Element>(\n callback: UseIntersectionObserverCallback,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseIntersectionObserverCallback): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useIntersectionObserver();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useIntersectionObserver(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useIntersectionObserver(() => console.log('callback'));\n *\n * @overload\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useIntersectionObserver(ref, () => console.log('callback'));\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseIntersectionObserverOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entries, setEntries] = useState<IntersectionObserverEntry[]>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries, observer) => {\n setEntries(entries);\n internalCallbackRef.current?.(entries, observer);\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entries };\n return {\n observer,\n ref: internalRef,\n entries\n };\n}) as UseIntersectionObserver;\n"],"
|
|
1
|
+
{"version":3,"file":"useIntersectionObserver.mjs","names":[],"sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The intersection observer callback type */\nexport type UseIntersectionObserverCallback = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver\n) => void;\n\n/** The intersection observer options type */\nexport interface UseIntersectionObserverOptions extends Omit<IntersectionObserverInit, 'root'> {\n /** The enabled state of the intersection observer */\n enabled?: boolean;\n /** The callback to execute when intersection is detected */\n onChange?: UseIntersectionObserverCallback;\n /** The root element to observe */\n root?: HookTarget;\n}\n\n/** The intersection observer return type */\nexport interface UseIntersectionObserverReturn {\n /** The intersection observer entry */\n entries?: IntersectionObserverEntry[];\n /** The intersection observer instance */\n observer?: IntersectionObserver;\n}\n\nexport interface UseIntersectionObserver {\n <Target extends Element>(\n options?: UseIntersectionObserverOptions,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;\n\n <Target extends Element>(\n callback: UseIntersectionObserverCallback,\n target?: never\n ): UseIntersectionObserverReturn & { ref: StateRef<Target> };\n\n (target: HookTarget, callback: UseIntersectionObserverCallback): UseIntersectionObserverReturn;\n}\n\n/**\n * @name useIntersectionObserver\n * @description - Hook that gives you intersection observer state\n * @category Sensors\n * @usage medium\n *\n * @browserapi IntersectionObserver https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver\n *\n * @overload\n * @param {HookTarget} target The target element to detect intersection\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { ref, entries, observer } = useIntersectionObserver();\n *\n * @overload\n * @template Target The target element\n * @param {boolean} [options.enabled=true] The IntersectionObserver options\n * @param {((entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void) | undefined} [options.onChange] The callback to execute when intersection is detected\n * @param {HookTarget} [options.root=document] The root element to observe\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { entries, observer } = useIntersectionObserver(ref);\n *\n * @overload\n * @template Target The target element\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @returns {UseIntersectionObserverReturn & { ref: StateRef<Target> }} A React ref to attach to the target element\n *\n * @example\n * const { ref, entries, observer } = useIntersectionObserver(() => console.log('callback'));\n *\n * @overload\n * @param {UseIntersectionObserverCallback} callback The callback to execute when intersection is detected\n * @param {HookTarget} target The target element to detect intersection\n * @returns {UseIntersectionObserverReturn} An object containing the state\n *\n * @example\n * const { entries, observer } = useIntersectionObserver(ref, () => console.log('callback'));\n */\nexport const useIntersectionObserver = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onChange: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onChange: params[0] }\n ) as UseIntersectionObserverOptions | undefined;\n\n const callback = options?.onChange;\n const enabled = options?.enabled ?? true;\n\n const [observer, setObserver] = useState<IntersectionObserver>();\n const [entries, setEntries] = useState<IntersectionObserverEntry[]>();\n\n const internalRef = useRefState<Element>();\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = target ? isTarget.getElement(target) : internalRef.current;\n if (!element) return;\n\n const observer = new IntersectionObserver(\n (entries, observer) => {\n setEntries(entries);\n internalCallbackRef.current?.(entries, observer);\n },\n {\n ...options,\n root: options?.root ? (isTarget.getElement(options.root) as Document | Element) : document\n }\n );\n\n setObserver(observer);\n observer.observe(element as Element);\n\n return () => {\n observer.disconnect();\n };\n }, [\n target && isTarget.getRawElement(target),\n internalRef.state,\n options?.rootMargin,\n options?.threshold,\n options?.root,\n enabled\n ]);\n\n if (target) return { observer, entries };\n return {\n observer,\n ref: internalRef,\n entries\n };\n}) as UseIntersectionObserver;\n"],"mappings":";;;;AA8FA,IAAa,MAA4B,GAAG,MAAkB;CAC5D,IAAM,IAAU,EAAS,EAAO,GAAG,GAAG,EAAO,KAAK,KAAA,GAE5C,IACJ,IACI,OAAO,EAAO,MAAO,WACnB,EAAO,KACP,EAAE,UAAU,EAAO,IAAI,GACzB,OAAO,EAAO,MAAO,WACnB,EAAO,KACP,EAAE,UAAU,EAAO,IAAI,EAGzB,IAAW,GAAS,UACpB,IAAU,GAAS,WAAW,IAE9B,CAAC,GAAU,KAAe,GAAgC,EAC1D,CAAC,GAAS,KAAc,GAAuC,EAE/D,IAAc,GAAsB,EACpC,IAAsB,EAAO,EAAS;AAoC5C,QAnCA,EAAoB,UAAU,GAE9B,QAAgB;AACd,MAAI,CAAC,KAAY,CAAC,KAAU,CAAC,EAAY,MAAQ;EAEjD,IAAM,IAAU,IAAS,EAAS,WAAW,EAAO,GAAG,EAAY;AACnE,MAAI,CAAC,EAAS;EAEd,IAAM,IAAW,IAAI,sBAClB,GAAS,MAAa;AAErB,GADA,EAAW,EAAQ,EACnB,EAAoB,UAAU,GAAS,EAAS;KAElD;GACE,GAAG;GACH,MAAM,GAAS,OAAQ,EAAS,WAAW,EAAQ,KAAK,GAA0B;GACnF,CACF;AAKD,SAHA,EAAY,EAAS,EACrB,EAAS,QAAQ,EAAmB,QAEvB;AACX,KAAS,YAAY;;IAEtB;EACD,KAAU,EAAS,cAAc,EAAO;EACxC,EAAY;EACZ,GAAS;EACT,GAAS;EACT,GAAS;EACT;EACD,CAAC,EAEE,IAAe;EAAE;EAAU;EAAS,GACjC;EACL;EACA,KAAK;EACL;EACD"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { useEffect as e, useRef as t, useState as n } from "react";
|
|
2
|
+
//#region src/hooks/useInterval/useInterval.ts
|
|
3
|
+
var r = ((...r) => {
|
|
4
|
+
let i = r[0], a = (typeof r[1] == "number" ? r[1] : r[1].interval) ?? 1e3, [o, s] = n((typeof r[1] == "object" ? r[1] : r[2])?.immediately ?? !0 ?? !0), c = t(void 0), l = t(i);
|
|
5
|
+
return l.current = i, e(() => {
|
|
6
|
+
if (o) return c.current = setInterval(() => l.current(), a), () => {
|
|
7
|
+
clearInterval(c.current);
|
|
8
|
+
};
|
|
9
|
+
}, [o, a]), {
|
|
10
|
+
active: o,
|
|
11
|
+
pause: () => s(!1),
|
|
12
|
+
resume: () => {
|
|
13
|
+
a <= 0 || s(!0);
|
|
14
|
+
},
|
|
15
|
+
toggle: (e = !o) => s(e)
|
|
16
|
+
};
|
|
17
17
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=useInterval.mjs.map
|
|
18
|
+
//#endregion
|
|
19
|
+
export { r as useInterval };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=useInterval.mjs.map
|