@siberiacancode/reactuse 0.0.97 → 0.0.99
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/{_rollupPluginBabelHelpers-B6-9bMtn.js → _rollupPluginBabelHelpers-C-GU1yny.js} +3 -3
- package/dist/cjs/_rollupPluginBabelHelpers-C-GU1yny.js.map +1 -0
- package/dist/cjs/hooks/index.js +2 -2
- package/dist/cjs/hooks/useActiveElement/useActiveElement.js +2 -2
- package/dist/cjs/hooks/useAsync/useAsync.js +2 -2
- package/dist/cjs/hooks/useBattery/useBattery.js +2 -2
- package/dist/cjs/hooks/useBluetooth/useBluetooth.js +2 -2
- package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
- package/dist/cjs/hooks/useBreakpoints/useBreakpoints.js +2 -2
- package/dist/cjs/hooks/useBreakpoints/useBreakpoints.js.map +1 -1
- package/dist/cjs/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
- package/dist/cjs/hooks/useClickOutside/useClickOutside.js +2 -2
- package/dist/cjs/hooks/useClipboard/useClipboard.js +2 -2
- package/dist/cjs/hooks/useConst/useConst.js +1 -1
- package/dist/cjs/hooks/useCookie/useCookie.js +2 -2
- package/dist/cjs/hooks/useCookie/useCookie.js.map +1 -1
- package/dist/cjs/hooks/useCookies/useCookies.js +3 -0
- package/dist/cjs/hooks/useCookies/useCookies.js.map +1 -0
- package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
- package/dist/cjs/hooks/useCssVar/useCssVar.js +2 -2
- package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +2 -2
- package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
- package/dist/cjs/hooks/useDefault/useDefault.js +2 -2
- package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js +2 -2
- package/dist/cjs/hooks/useDeviceMotion/useDeviceMotion.js.map +1 -1
- package/dist/cjs/hooks/useDeviceOrientation/useDeviceOrientation.js +2 -2
- package/dist/cjs/hooks/useDevicePixelRatio/useDevicePixelRatio.js +2 -2
- package/dist/cjs/hooks/useDidUpdate/useDidUpdate.js +1 -1
- package/dist/cjs/hooks/useDisclosure/useDisclosure.js +2 -2
- package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.js +2 -2
- package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
- package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
- package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
- package/dist/cjs/hooks/useElementSize/useElementSize.js +2 -2
- package/dist/cjs/hooks/useEvent/useEvent.js +1 -1
- package/dist/cjs/hooks/useEventListener/useEventListener.js +2 -2
- package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
- package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
- package/dist/cjs/hooks/useField/useField.js +2 -2
- package/dist/cjs/hooks/useField/useField.js.map +1 -1
- package/dist/cjs/hooks/useFileDialog/useFileDialog.js +2 -2
- package/dist/cjs/hooks/useFileDialog/useFileDialog.js.map +1 -1
- package/dist/cjs/hooks/useFocus/useFocus.js +2 -2
- package/dist/cjs/hooks/useFocus/useFocus.js.map +1 -1
- package/dist/cjs/hooks/useFps/useFps.js +2 -2
- package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
- package/dist/cjs/hooks/useGamepad/helpers/index.js +1 -1
- package/dist/cjs/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
- package/dist/cjs/hooks/useGamepad/useGamepad.js +2 -2
- package/dist/cjs/hooks/useGeolocation/useGeolocation.js +2 -2
- package/dist/cjs/hooks/useHash/useHash.js +2 -2
- package/dist/cjs/hooks/useHotkeys/useHotkeys.js +2 -2
- package/dist/cjs/hooks/useHover/useHover.js +2 -2
- package/dist/cjs/hooks/useIdle/useIdle.js +2 -2
- package/dist/cjs/hooks/useImage/useImage.js +2 -2
- package/dist/cjs/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
- package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
- package/dist/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
- package/dist/cjs/hooks/useInterval/useInterval.js +2 -2
- package/dist/cjs/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
- package/dist/cjs/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
- package/dist/cjs/hooks/useKeyPress/useKeyPress.js +2 -2
- package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
- package/dist/cjs/hooks/useKeyPressEvent/useKeyPressEvent.js.map +1 -1
- package/dist/cjs/hooks/useKeyboard/useKeyboard.js +2 -2
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
- package/dist/cjs/hooks/useLastChanged/useLastChanged.js +2 -2
- package/dist/cjs/hooks/useLatest/useLatest.js +1 -1
- package/dist/cjs/hooks/useLess/useLess.js +3 -0
- package/dist/cjs/hooks/useLess/useLess.js.map +1 -0
- package/dist/cjs/hooks/useList/useList.js +2 -2
- package/dist/cjs/hooks/useLocalStorage/useLocalStorage.js +2 -2
- package/dist/cjs/hooks/useLogger/useLogger.js +2 -2
- package/dist/cjs/hooks/useLongPress/useLongPress.js +2 -2
- package/dist/cjs/hooks/useLongPress/useLongPress.js.map +1 -1
- package/dist/cjs/hooks/useMap/useMap.js +2 -2
- package/dist/cjs/hooks/useMeasure/useMeasure.js +2 -2
- package/dist/cjs/hooks/useMeasure/useMeasure.js.map +1 -1
- package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/dist/cjs/hooks/useMemory/useMemory.js +2 -2
- package/dist/cjs/hooks/useMount/useMount.js +1 -1
- package/dist/cjs/hooks/useMouse/useMouse.js +2 -2
- package/dist/cjs/hooks/useMutation/useMutation.js +2 -2
- package/dist/cjs/hooks/useMutationObserver/useMutationObserver.js +2 -2
- package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
- package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
- package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +2 -2
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -1
- package/dist/cjs/hooks/useOptimistic/useOptimistic.js +2 -2
- package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
- package/dist/cjs/hooks/useOtpCredential/useOtpCredential.js +2 -2
- package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
- package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
- package/dist/cjs/hooks/usePaint/usePaint.js.map +1 -1
- package/dist/cjs/hooks/useParallax/useParallax.js +2 -2
- package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.js +3 -0
- package/dist/cjs/hooks/usePerformanceObserver/usePerformanceObserver.js.map +1 -0
- package/dist/cjs/hooks/usePermission/usePermission.js +2 -2
- package/dist/cjs/hooks/usePointerLock/usePointerLock.js +2 -2
- package/dist/cjs/hooks/usePostMessage/usePostMessage.js +1 -1
- package/dist/cjs/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
- package/dist/cjs/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
- package/dist/cjs/hooks/usePreferredDark/usePreferredDark.js +1 -1
- package/dist/cjs/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
- package/dist/cjs/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
- package/dist/cjs/hooks/usePrevious/usePrevious.js +1 -1
- package/dist/cjs/hooks/useQuery/useQuery.js +2 -2
- package/dist/cjs/hooks/useQuery/useQuery.js.map +1 -1
- package/dist/cjs/hooks/useQueue/useQueue.js +2 -2
- package/dist/cjs/hooks/useRaf/useRaf.js +2 -2
- package/dist/cjs/hooks/useRaf/useRaf.js.map +1 -1
- package/dist/cjs/hooks/useRafValue/useRafValue.js +2 -2
- package/dist/cjs/hooks/useRefState/useRefState.js +2 -2
- package/dist/cjs/hooks/useRenderCount/useRenderCount.js +1 -1
- package/dist/cjs/hooks/useRenderInfo/useRenderInfo.js +1 -1
- package/dist/cjs/hooks/useRerender/useRerender.js +1 -1
- package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js +2 -2
- package/dist/cjs/hooks/useScreenOrientation/useScreenOrientation.js +2 -2
- package/dist/cjs/hooks/useScript/useScript.js +2 -2
- package/dist/cjs/hooks/useScroll/useScroll.js +2 -2
- package/dist/cjs/hooks/useScroll/useScroll.js.map +1 -1
- package/dist/cjs/hooks/useScrollIntoView/useScrollIntoView.js +2 -2
- package/dist/cjs/hooks/useScrollTo/useScrollTo.js +2 -2
- package/dist/cjs/hooks/useSessionStorage/useSessionStorage.js +2 -2
- package/dist/cjs/hooks/useSet/useSet.js +2 -2
- package/dist/cjs/hooks/useShare/useShare.js +2 -2
- package/dist/cjs/hooks/useStateHistory/useStateHistory.js +2 -2
- package/dist/cjs/hooks/useStep/useStep.js +2 -2
- package/dist/cjs/hooks/useStopwatch/useStopwatch.js +2 -2
- package/dist/cjs/hooks/useStorage/useStorage.js +2 -2
- package/dist/cjs/hooks/useTextDirection/useTextDirection.js +2 -2
- package/dist/cjs/hooks/useTextSelection/useTextSelection.js +2 -2
- package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.js +2 -2
- package/dist/cjs/hooks/useThrottleValue/useThrottleValue.js +2 -2
- package/dist/cjs/hooks/useTime/useTime.js +2 -2
- package/dist/cjs/hooks/useTimeout/useTimeout.js +2 -2
- package/dist/cjs/hooks/useTimer/useTimer.js +2 -2
- package/dist/cjs/hooks/useToggle/useToggle.js +2 -2
- package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
- package/dist/cjs/hooks/useVibrate/useVibrate.js +2 -2
- package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +2 -2
- package/dist/cjs/hooks/useWindowFocus/useWindowFocus.js +2 -2
- package/dist/cjs/hooks/useWindowScroll/useWindowScroll.js +2 -2
- package/dist/cjs/hooks/useWindowSize/useWindowSize.js +2 -2
- package/dist/cjs/hooks/useWizard/useWizard.js +2 -2
- package/dist/cjs/hooks/useWizard/useWizard.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/utils/helpers/debounce.js +1 -1
- package/dist/cjs/utils/helpers/getDate.js +1 -1
- package/dist/cjs/utils/helpers/getElement.js +1 -1
- package/dist/cjs/utils/helpers/getRetry.js +1 -1
- package/dist/cjs/utils/helpers/index.js +2 -2
- package/dist/cjs/utils/helpers/isTarget.js +2 -2
- package/dist/cjs/utils/helpers/throttle.js +1 -1
- package/dist/esm/{_rollupPluginBabelHelpers-WrSliisk.js → _rollupPluginBabelHelpers-D_XDB4a1.js} +3 -3
- package/dist/esm/_rollupPluginBabelHelpers-D_XDB4a1.js.map +1 -0
- package/dist/esm/hooks/index.js +2 -2
- package/dist/esm/hooks/useActiveElement/useActiveElement.js +2 -2
- package/dist/esm/hooks/useAsync/useAsync.js +2 -2
- package/dist/esm/hooks/useBattery/useBattery.js +2 -2
- package/dist/esm/hooks/useBluetooth/useBluetooth.js +2 -2
- package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
- package/dist/esm/hooks/useBreakpoints/useBreakpoints.js +2 -2
- package/dist/esm/hooks/useBreakpoints/useBreakpoints.js.map +1 -1
- package/dist/esm/hooks/useBrowserLanguage/useBrowserLanguage.js +1 -1
- package/dist/esm/hooks/useClickOutside/useClickOutside.js +2 -2
- package/dist/esm/hooks/useClipboard/useClipboard.js +2 -2
- package/dist/esm/hooks/useConst/useConst.js +1 -1
- package/dist/esm/hooks/useCookie/useCookie.js +2 -2
- package/dist/esm/hooks/useCookie/useCookie.js.map +1 -1
- package/dist/esm/hooks/useCookies/useCookies.js +3 -0
- package/dist/esm/hooks/useCookies/useCookies.js.map +1 -0
- package/dist/esm/hooks/useCounter/useCounter.js +2 -2
- package/dist/esm/hooks/useCssVar/useCssVar.js +2 -2
- package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +2 -2
- package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
- package/dist/esm/hooks/useDefault/useDefault.js +2 -2
- package/dist/esm/hooks/useDeviceMotion/useDeviceMotion.js +2 -2
- package/dist/esm/hooks/useDeviceOrientation/useDeviceOrientation.js +2 -2
- package/dist/esm/hooks/useDevicePixelRatio/useDevicePixelRatio.js +2 -2
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.js +1 -1
- package/dist/esm/hooks/useDisclosure/useDisclosure.js +2 -2
- package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.js +2 -2
- package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +2 -2
- package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
- package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
- package/dist/esm/hooks/useElementSize/useElementSize.js +2 -2
- package/dist/esm/hooks/useEvent/useEvent.js +1 -1
- package/dist/esm/hooks/useEventListener/useEventListener.js +2 -2
- package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
- package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
- package/dist/esm/hooks/useField/useField.js +2 -2
- package/dist/esm/hooks/useField/useField.js.map +1 -1
- package/dist/esm/hooks/useFileDialog/useFileDialog.js +2 -2
- package/dist/esm/hooks/useFileDialog/useFileDialog.js.map +1 -1
- package/dist/esm/hooks/useFocus/useFocus.js +2 -2
- package/dist/esm/hooks/useFocus/useFocus.js.map +1 -1
- package/dist/esm/hooks/useFps/useFps.js +2 -2
- package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
- package/dist/esm/hooks/useGamepad/helpers/index.js +1 -1
- package/dist/esm/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +1 -1
- package/dist/esm/hooks/useGamepad/useGamepad.js +2 -2
- package/dist/esm/hooks/useGeolocation/useGeolocation.js +2 -2
- package/dist/esm/hooks/useHash/useHash.js +2 -2
- package/dist/esm/hooks/useHotkeys/useHotkeys.js +2 -2
- package/dist/esm/hooks/useHover/useHover.js +2 -2
- package/dist/esm/hooks/useIdle/useIdle.js +2 -2
- package/dist/esm/hooks/useImage/useImage.js +2 -2
- package/dist/esm/hooks/useInfiniteScroll/useInfiniteScroll.js +2 -2
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -2
- package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
- package/dist/esm/hooks/useInterval/useInterval.js +2 -2
- package/dist/esm/hooks/useIsFirstRender/useIsFirstRender.js +1 -1
- package/dist/esm/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +1 -1
- package/dist/esm/hooks/useKeyPress/useKeyPress.js +2 -2
- package/dist/esm/hooks/useKeyPressEvent/useKeyPressEvent.js +2 -2
- package/dist/esm/hooks/useKeyboard/useKeyboard.js +2 -2
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
- package/dist/esm/hooks/useLastChanged/useLastChanged.js +2 -2
- package/dist/esm/hooks/useLatest/useLatest.js +1 -1
- package/dist/esm/hooks/useLess/useLess.js +3 -0
- package/dist/esm/hooks/useLess/useLess.js.map +1 -0
- package/dist/esm/hooks/useList/useList.js +2 -2
- package/dist/esm/hooks/useLocalStorage/useLocalStorage.js +2 -2
- package/dist/esm/hooks/useLogger/useLogger.js +2 -2
- package/dist/esm/hooks/useLongPress/useLongPress.js +2 -2
- package/dist/esm/hooks/useLongPress/useLongPress.js.map +1 -1
- package/dist/esm/hooks/useMap/useMap.js +2 -2
- package/dist/esm/hooks/useMeasure/useMeasure.js +2 -2
- package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/dist/esm/hooks/useMemory/useMemory.js +2 -2
- package/dist/esm/hooks/useMount/useMount.js +1 -1
- package/dist/esm/hooks/useMouse/useMouse.js +2 -2
- package/dist/esm/hooks/useMutation/useMutation.js +2 -2
- package/dist/esm/hooks/useMutationObserver/useMutationObserver.js +2 -2
- package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
- package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.js +2 -2
- package/dist/esm/hooks/useOnline/useOnline.js +1 -1
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +2 -2
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js.map +1 -1
- package/dist/esm/hooks/useOptimistic/useOptimistic.js +2 -2
- package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
- package/dist/esm/hooks/useOtpCredential/useOtpCredential.js +2 -2
- package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
- package/dist/esm/hooks/usePaint/usePaint.js +2 -2
- package/dist/esm/hooks/usePaint/usePaint.js.map +1 -1
- package/dist/esm/hooks/useParallax/useParallax.js +2 -2
- package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.js +3 -0
- package/dist/esm/hooks/usePerformanceObserver/usePerformanceObserver.js.map +1 -0
- package/dist/esm/hooks/usePermission/usePermission.js +2 -2
- package/dist/esm/hooks/usePointerLock/usePointerLock.js +2 -2
- package/dist/esm/hooks/usePostMessage/usePostMessage.js +1 -1
- package/dist/esm/hooks/usePreferredColorScheme/usePreferredColorScheme.js +1 -1
- package/dist/esm/hooks/usePreferredContrast/usePreferredContrast.js +1 -1
- package/dist/esm/hooks/usePreferredDark/usePreferredDark.js +1 -1
- package/dist/esm/hooks/usePreferredLanguages/usePreferredLanguages.js +1 -1
- package/dist/esm/hooks/usePreferredReducedMotion/usePreferredReducedMotion.js +1 -1
- package/dist/esm/hooks/usePrevious/usePrevious.js +1 -1
- package/dist/esm/hooks/useQuery/useQuery.js +2 -2
- package/dist/esm/hooks/useQuery/useQuery.js.map +1 -1
- package/dist/esm/hooks/useQueue/useQueue.js +2 -2
- package/dist/esm/hooks/useRaf/useRaf.js +2 -2
- package/dist/esm/hooks/useRaf/useRaf.js.map +1 -1
- package/dist/esm/hooks/useRafValue/useRafValue.js +2 -2
- package/dist/esm/hooks/useRefState/useRefState.js +2 -2
- package/dist/esm/hooks/useRenderCount/useRenderCount.js +1 -1
- package/dist/esm/hooks/useRenderInfo/useRenderInfo.js +1 -1
- package/dist/esm/hooks/useRerender/useRerender.js +1 -1
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +2 -2
- package/dist/esm/hooks/useScreenOrientation/useScreenOrientation.js +2 -2
- package/dist/esm/hooks/useScript/useScript.js +2 -2
- package/dist/esm/hooks/useScroll/useScroll.js +2 -2
- package/dist/esm/hooks/useScroll/useScroll.js.map +1 -1
- package/dist/esm/hooks/useScrollIntoView/useScrollIntoView.js +2 -2
- package/dist/esm/hooks/useScrollTo/useScrollTo.js +2 -2
- package/dist/esm/hooks/useSessionStorage/useSessionStorage.js +2 -2
- package/dist/esm/hooks/useSet/useSet.js +2 -2
- package/dist/esm/hooks/useShare/useShare.js +2 -2
- package/dist/esm/hooks/useStateHistory/useStateHistory.js +2 -2
- package/dist/esm/hooks/useStep/useStep.js +2 -2
- package/dist/esm/hooks/useStopwatch/useStopwatch.js +2 -2
- package/dist/esm/hooks/useStorage/useStorage.js +2 -2
- package/dist/esm/hooks/useTextDirection/useTextDirection.js +2 -2
- package/dist/esm/hooks/useTextSelection/useTextSelection.js +2 -2
- package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.js +2 -2
- package/dist/esm/hooks/useThrottleValue/useThrottleValue.js +2 -2
- package/dist/esm/hooks/useTime/useTime.js +2 -2
- package/dist/esm/hooks/useTimeout/useTimeout.js +2 -2
- package/dist/esm/hooks/useTimer/useTimer.js +2 -2
- package/dist/esm/hooks/useToggle/useToggle.js +2 -2
- package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
- package/dist/esm/hooks/useVibrate/useVibrate.js +2 -2
- package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +2 -2
- package/dist/esm/hooks/useWindowFocus/useWindowFocus.js +2 -2
- package/dist/esm/hooks/useWindowScroll/useWindowScroll.js +2 -2
- package/dist/esm/hooks/useWindowSize/useWindowSize.js +2 -2
- package/dist/esm/hooks/useWizard/useWizard.js +2 -2
- package/dist/esm/hooks/useWizard/useWizard.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/utils/helpers/debounce.js +1 -1
- package/dist/esm/utils/helpers/getDate.js +1 -1
- package/dist/esm/utils/helpers/getElement.js +1 -1
- package/dist/esm/utils/helpers/getRetry.js +1 -1
- package/dist/esm/utils/helpers/index.js +2 -2
- package/dist/esm/utils/helpers/isTarget.js +2 -2
- package/dist/esm/utils/helpers/throttle.js +1 -1
- package/dist/types/index.d.ts +100 -30
- package/package.json +1 -1
- package/dist/cjs/_rollupPluginBabelHelpers-B6-9bMtn.js.map +0 -1
- package/dist/cjs/hooks/usePaint/helpers/Paint.js +0 -3
- package/dist/cjs/hooks/usePaint/helpers/Paint.js.map +0 -1
- package/dist/cjs/hooks/usePaint/helpers/index.js +0 -3
- package/dist/cjs/hooks/usePaint/helpers/index.js.map +0 -1
- package/dist/cjs/utils/helpers/cookie.js +0 -3
- package/dist/cjs/utils/helpers/cookie.js.map +0 -1
- package/dist/esm/_rollupPluginBabelHelpers-WrSliisk.js.map +0 -1
- package/dist/esm/hooks/usePaint/helpers/Paint.js +0 -3
- package/dist/esm/hooks/usePaint/helpers/Paint.js.map +0 -1
- package/dist/esm/hooks/usePaint/helpers/index.js +0 -3
- package/dist/esm/hooks/usePaint/helpers/index.js.map +0 -1
- package/dist/esm/utils/helpers/cookie.js +0 -3
- package/dist/esm/utils/helpers/cookie.js.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),o=require("react"),t=require("../useDidUpdate/useDidUpdate.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useLogger=function(u,r){o.useEffect((function(){var o;return(o=console).log.apply(o,["".concat(u," mounted")].concat(e._toConsumableArray(r))),function(){return console.log("".concat(u," unmounted"))}}),[]),t.useDidUpdate((function(){var o;(o=console).log.apply(o,["".concat(u," updated")].concat(e._toConsumableArray(r)))}),r)};
|
|
3
3
|
//# sourceMappingURL=useLogger.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),n=require("react");exports.useLongPress=function(r,u){var l=n.useState(!1),o=e._slicedToArray(l,2),t=o[0],c=o[1],i=n.useRef(),s=n.useRef(!1),a=function(e){var n,l;null==u||null===(n=u.onStart)||void 0===n||n.call(u,e),s.current=!0,i.current=setTimeout((function(){r(e),c(!0)}),null!==(l=null==u?void 0:u.threshold)&&void 0!==l?l:400)},v=function(e){var n;if(t)null==u||null===(n=u.onFinish)||void 0===n||n.call(u,e);else if(s.current){var r;null==u||null===(r=u.onCancel)||void 0===r||r.call(u,e)}c(!1),s.current=!1,i.current&&clearTimeout(i.current)};return[{onMouseDown:a,onTouchStart:a,onMouseUp:v,onTouchEnd:v},t]};
|
|
3
3
|
//# sourceMappingURL=useLongPress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLongPress.js","sources":["../../../../src/hooks/useLongPress/useLongPress.ts"],"sourcesContent":["import type { MouseEventHandler, RefObject, TouchEventHandler } from 'react';\n\nimport { useRef, useState } from 'react';\n\n// * The use long press target type */\nexport type UseLongPressTarget = (() => Element) | Element | RefObject<Element | null | undefined>;\n\nexport type LongPressReactEvents<Target extends Element = Element> =\n | MouseEventHandler<Target>\n | TouchEventHandler<Target>;\n\n// * The use long press options type */\nexport interface UseLongPressOptions {\n // * The threshold time in milliseconds\n threshold?: number;\n // * The callback function to be invoked on long press cancel\n onCancel?: (event: LongPressReactEvents) => void;\n // * The callback function to be invoked on long press end\n onFinish?: (event: LongPressReactEvents) => void;\n // * The callback function to be invoked on long press start\n onStart?: (event: LongPressReactEvents) => void;\n}\n\n// * The use long press bind type */\nexport interface UseLongPressBind {\n /** The callback function to be invoked on mouse down */\n onMouseDown: MouseEventHandler<Element>;\n /** The callback function to be invoked on mouse up */\n onMouseUp: MouseEventHandler<Element>;\n /** The callback function to be invoked on touch end */\n onTouchEnd: TouchEventHandler<Element>;\n /** The callback function to be invoked on touch start */\n onTouchStart: TouchEventHandler<Element>;\n}\n\n// * The use long press return type */\nexport type UseLongPressReturn = [UseLongPressBind, boolean];\n\nconst DEFAULT_THRESHOLD_TIME = 400;\n\n/**\n * @name useLongPress\n * @description - Hook that defines the logic when long pressing an element\n * @category Sensors\n *\n * @template Target The target element\n * @param {Target} target The target element to be long pressed\n * @param {(event: Event) => void} callback The callback function to be invoked on long press\n * @param {number} [options.threshold=400] The threshold time in milliseconds\n * @param {(event: Event) => void} [options.onStart] The callback function to be invoked on long press start\n * @param {(event: Event) => void} [options.onFinish] The callback function to be invoked on long press finish\n * @param {(event: Event) => void} [options.onCancel] The callback function to be invoked on long press cancel\n * @returns {UseLongPressReturn<Target>} The ref of the target element\n *\n * @example\n * const [bind, longPressing] = useLongPress(() => console.log('callback'));\n */\nexport const useLongPress = (\n callback: (event: LongPressReactEvents) => void,\n options?: UseLongPressOptions\n): UseLongPressReturn => {\n const [isLongPressActive, setIsLongPressActive] = useState(false);\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>();\n const isPressed = useRef(false);\n\n const start = (event: LongPressReactEvents) => {\n options?.onStart?.(event);\n\n isPressed.current = true;\n timeoutIdRef.current = setTimeout(() => {\n callback(event);\n setIsLongPressActive(true);\n }, options?.threshold ?? DEFAULT_THRESHOLD_TIME);\n };\n\n const cancel = (event: LongPressReactEvents) => {\n if (isLongPressActive) {\n options?.onFinish?.(event);\n } else if (isPressed.current) {\n options?.onCancel?.(event);\n }\n\n setIsLongPressActive(false);\n isPressed.current = false;\n\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n\n const bind = {\n onMouseDown: start,\n onTouchStart: start,\n onMouseUp: cancel,\n onTouchEnd: cancel\n } as unknown as UseLongPressBind;\n\n return [bind, isLongPressActive];\n};\n"],"names":["callback","options","_useState","useState","_useState2","_slicedToArray","isLongPressActive","setIsLongPressActive","timeoutIdRef","useRef","isPressed","start","event","_options$onStart","_options$threshold","onStart","call","current","setTimeout","threshold","cancel","_options$onFinish","onFinish","_options$onCancel","onCancel","clearTimeout","onMouseDown","onTouchStart","onMouseUp","onTouchEnd"],"mappings":";kHAyD4B,SAC1BA,EACAC,GAEA,IAAAC,EAAkDC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAA1DI,EAAiBF,EAAA,GAAEG,EAAoBH,EAAA,GACxCI,EAAeC,EAAAA,SACfC,EAAYD,EAAMA,QAAC,GAEnBE,EAAQ,SAACC,GAAgC,IAAAC,EAAAC,EAC7Cb,SAAgB,QAATY,EAAPZ,EAASc,eAAO,IAAAF,GAAhBA,EAAAG,KAAAf,EAAmBW,GAEnBF,EAAUO,SAAU,EACpBT,EAAaS,QAAUC,YAAW,WAChClB,EAASY,GACTL,GAAqB,
|
|
1
|
+
{"version":3,"file":"useLongPress.js","sources":["../../../../src/hooks/useLongPress/useLongPress.ts"],"sourcesContent":["import type { MouseEventHandler, RefObject, TouchEventHandler } from 'react';\n\nimport { useRef, useState } from 'react';\n\n// * The use long press target type */\nexport type UseLongPressTarget = (() => Element) | Element | RefObject<Element | null | undefined>;\n\nexport type LongPressReactEvents<Target extends Element = Element> =\n | MouseEventHandler<Target>\n | TouchEventHandler<Target>;\n\n// * The use long press options type */\nexport interface UseLongPressOptions {\n // * The threshold time in milliseconds\n threshold?: number;\n // * The callback function to be invoked on long press cancel\n onCancel?: (event: LongPressReactEvents) => void;\n // * The callback function to be invoked on long press end\n onFinish?: (event: LongPressReactEvents) => void;\n // * The callback function to be invoked on long press start\n onStart?: (event: LongPressReactEvents) => void;\n}\n\n// * The use long press bind type */\nexport interface UseLongPressBind {\n /** The callback function to be invoked on mouse down */\n onMouseDown: MouseEventHandler<Element>;\n /** The callback function to be invoked on mouse up */\n onMouseUp: MouseEventHandler<Element>;\n /** The callback function to be invoked on touch end */\n onTouchEnd: TouchEventHandler<Element>;\n /** The callback function to be invoked on touch start */\n onTouchStart: TouchEventHandler<Element>;\n}\n\n// * The use long press return type */\nexport type UseLongPressReturn = [UseLongPressBind, boolean];\n\nconst DEFAULT_THRESHOLD_TIME = 400;\n\n/**\n * @name useLongPress\n * @description - Hook that defines the logic when long pressing an element\n * @category Sensors\n *\n * @template Target The target element\n * @param {Target} target The target element to be long pressed\n * @param {(event: Event) => void} callback The callback function to be invoked on long press\n * @param {number} [options.threshold=400] The threshold time in milliseconds\n * @param {(event: Event) => void} [options.onStart] The callback function to be invoked on long press start\n * @param {(event: Event) => void} [options.onFinish] The callback function to be invoked on long press finish\n * @param {(event: Event) => void} [options.onCancel] The callback function to be invoked on long press cancel\n * @returns {UseLongPressReturn<Target>} The ref of the target element\n *\n * @example\n * const [bind, longPressing] = useLongPress(() => console.log('callback'));\n */\nexport const useLongPress = (\n callback: (event: LongPressReactEvents) => void,\n options?: UseLongPressOptions\n): UseLongPressReturn => {\n const [isLongPressActive, setIsLongPressActive] = useState(false);\n const timeoutIdRef = useRef<ReturnType<typeof setTimeout>>();\n const isPressed = useRef(false);\n\n const start = (event: LongPressReactEvents) => {\n options?.onStart?.(event);\n\n isPressed.current = true;\n timeoutIdRef.current = setTimeout(() => {\n callback(event);\n setIsLongPressActive(true);\n }, options?.threshold ?? DEFAULT_THRESHOLD_TIME);\n };\n\n const cancel = (event: LongPressReactEvents) => {\n if (isLongPressActive) {\n options?.onFinish?.(event);\n } else if (isPressed.current) {\n options?.onCancel?.(event);\n }\n\n setIsLongPressActive(false);\n isPressed.current = false;\n\n if (timeoutIdRef.current) clearTimeout(timeoutIdRef.current);\n };\n\n const bind = {\n onMouseDown: start,\n onTouchStart: start,\n onMouseUp: cancel,\n onTouchEnd: cancel\n } as unknown as UseLongPressBind;\n\n return [bind, isLongPressActive];\n};\n"],"names":["callback","options","_useState","useState","_useState2","_slicedToArray","isLongPressActive","setIsLongPressActive","timeoutIdRef","useRef","isPressed","start","event","_options$onStart","_options$threshold","onStart","call","current","setTimeout","threshold","cancel","_options$onFinish","onFinish","_options$onCancel","onCancel","clearTimeout","onMouseDown","onTouchStart","onMouseUp","onTouchEnd"],"mappings":";kHAyD4B,SAC1BA,EACAC,GAEA,IAAAC,EAAkDC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAA1DI,EAAiBF,EAAA,GAAEG,EAAoBH,EAAA,GACxCI,EAAeC,EAAAA,SACfC,EAAYD,EAAMA,QAAC,GAEnBE,EAAQ,SAACC,GAAgC,IAAAC,EAAAC,EAC7Cb,SAAgB,QAATY,EAAPZ,EAASc,eAAO,IAAAF,GAAhBA,EAAAG,KAAAf,EAAmBW,GAEnBF,EAAUO,SAAU,EACpBT,EAAaS,QAAUC,YAAW,WAChClB,EAASY,GACTL,GAAqB,EACtB,WAAAO,EAAEb,aAAAA,EAAAA,EAASkB,iBAAS,IAAAL,EAAAA,EAlCM,IAmC5B,EAEKM,EAAS,SAACR,GACS,IAAAS,EAAvB,GAAIf,EACFL,SAAiB,QAAVoB,EAAPpB,EAASqB,gBAAQ,IAAAD,GAAjBA,EAAAL,KAAAf,EAAoBW,QACf,GAAIF,EAAUO,QAAS,CAAA,IAAAM,EAC5BtB,SAAiB,QAAVsB,EAAPtB,EAASuB,gBAAQ,IAAAD,GAAjBA,EAAAP,KAAAf,EAAoBW,EACtB,CAEAL,GAAqB,GACrBG,EAAUO,SAAU,EAEhBT,EAAaS,SAASQ,aAAajB,EAAaS,QACrD,EASD,MAAO,CAPM,CACXS,YAAaf,EACbgB,aAAchB,EACdiB,UAAWR,EACXS,WAAYT,GAGAd,EAChB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react");exports.useMap=function(n){var t=r.useState(new Map(n)),u=e._slicedToArray(t,2),a=u[0],i=u[1];return{value:a,size:a.size,set:function(e,r){return i((function(n){return new Map(n).set(e,r)}))},has:function(e){return a.has(e)},remove:function(e){return i((function(r){if(!r.has(e))return r;var n=new Map(r);return n.delete(e),n}))},clear:function(){return i(new Map)},reset:function(){return i(new Map(n))}}};
|
|
3
3
|
//# sourceMappingURL=useMap.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),t=require("react"),r=require("../useRefState/useRefState.js"),s=require("../useResizeObserver/useResizeObserver.js");require("../../utils/helpers/getElement.js");exports.useMeasure=function(i){var u=r.useRefState(),o=t.useState({x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0}),a=e._slicedToArray(o,2),l=a[0],h=a[1];return s.useResizeObserver(null!=i?i:u.current,{onChange:function(t){var r=e._slicedToArray(t,1)[0];if(r){var s=r.contentRect,i=s.x,u=s.y,o=s.width,a=s.height,l=s.top,n=s.left,c=s.bottom,f=s.right;h({x:i,y:u,width:o,height:a,top:l,left:n,bottom:c,right:f})}}}),i?l:e._objectSpread2({ref:u},l)};
|
|
3
3
|
//# sourceMappingURL=useMeasure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMeasure.js","sources":["../../../../src/hooks/useMeasure/useMeasure.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useState } from 'react';\n\nimport { useRefState } from '../useRefState/useRefState';\nimport { useResizeObserver } from '../useResizeObserver/useResizeObserver';\n\n/** The use measure target element type */\nexport type UseMeasureTarget = (() => Element) | Element | RefObject<Element | null | undefined>;\n\n/** The use measure return type */\nexport type UseMeasureReturn = Pick<\n DOMRectReadOnly,\n 'bottom' | 'height' | 'left' | 'right' | 'top' | 'width' | 'x' | 'y'\n>;\n\nexport interface UseMeasureScreen {\n <Target extends UseMeasureTarget>(target: Target): UseMeasureReturn;\n\n <Target extends UseMeasureTarget>(target?: never): UseMeasureReturn & { ref: RefObject<Target> };\n}\n\n/**\n * @name useMeasure\n * @description - Hook to measure the size and position of an element\n * @category Browser\n *\n * @overload\n * @template Target The element to measure\n * @param {Target} [target] The element to measure\n * @returns {UseMeasureReturn} The element's size and position\n *\n * @example\n * const { x, y, width, height, top, left, bottom, right } = useMeasure(ref);\n *\n * @overload\n * @template Target The element to measure\n * @returns {UseMeasureReturn & { ref: RefObject<Target> }} The element's size and position\n *\n * @example\n * const { ref, x, y, width, height, top, left, bottom, right } = useMeasure();\n */\nexport const useMeasure = (<Target extends UseMeasureTarget>(target?: Target) => {\n const internalRef = useRefState<Element>();\n const [rect, setRect] = useState({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n });\n\n useResizeObserver((target ?? internalRef.current) as Element, {\n onChange: ([entry]) => {\n if (!entry) return;\n\n const { x, y, width, height, top, left, bottom, right } = entry.contentRect;\n setRect({ x, y, width, height, top, left, bottom, right });\n }\n });\n\n if (target) return rect;\n return { ref: internalRef, ...rect };\n}) as UseMeasureScreen;\n"],"names":["target","internalRef","useRefState","_useState","useState","x","y","width","height","top","left","bottom","right","_useState2","_slicedToArray","rect","setRect","useResizeObserver","current","onChange","_ref","entry","_entry$contentRect","contentRect","_objectSpread","ref"],"mappings":";+PA0C2B,SAAkCA,GAC3D,IAAMC,EAAcC,EAAAA,cACpBC,EAAwBC,EAAAA,SAAS,CAC/BC,EAAG,EACHC,EAAG,EACHC,MAAO,EACPC,OAAQ,EACRC,IAAK,EACLC,KAAM,EACNC,OAAQ,EACRC,MAAO,IACPC,EAAAC,EAAAA,eAAAX,EAAA,GATKY,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAoBpB,OATAI,
|
|
1
|
+
{"version":3,"file":"useMeasure.js","sources":["../../../../src/hooks/useMeasure/useMeasure.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useState } from 'react';\n\nimport { useRefState } from '../useRefState/useRefState';\nimport { useResizeObserver } from '../useResizeObserver/useResizeObserver';\n\n/** The use measure target element type */\nexport type UseMeasureTarget = (() => Element) | Element | RefObject<Element | null | undefined>;\n\n/** The use measure return type */\nexport type UseMeasureReturn = Pick<\n DOMRectReadOnly,\n 'bottom' | 'height' | 'left' | 'right' | 'top' | 'width' | 'x' | 'y'\n>;\n\nexport interface UseMeasureScreen {\n <Target extends UseMeasureTarget>(target: Target): UseMeasureReturn;\n\n <Target extends UseMeasureTarget>(target?: never): UseMeasureReturn & { ref: RefObject<Target> };\n}\n\n/**\n * @name useMeasure\n * @description - Hook to measure the size and position of an element\n * @category Browser\n *\n * @overload\n * @template Target The element to measure\n * @param {Target} [target] The element to measure\n * @returns {UseMeasureReturn} The element's size and position\n *\n * @example\n * const { x, y, width, height, top, left, bottom, right } = useMeasure(ref);\n *\n * @overload\n * @template Target The element to measure\n * @returns {UseMeasureReturn & { ref: RefObject<Target> }} The element's size and position\n *\n * @example\n * const { ref, x, y, width, height, top, left, bottom, right } = useMeasure();\n */\nexport const useMeasure = (<Target extends UseMeasureTarget>(target?: Target) => {\n const internalRef = useRefState<Element>();\n const [rect, setRect] = useState({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n });\n\n useResizeObserver((target ?? internalRef.current) as Element, {\n onChange: ([entry]) => {\n if (!entry) return;\n\n const { x, y, width, height, top, left, bottom, right } = entry.contentRect;\n setRect({ x, y, width, height, top, left, bottom, right });\n }\n });\n\n if (target) return rect;\n return { ref: internalRef, ...rect };\n}) as UseMeasureScreen;\n"],"names":["target","internalRef","useRefState","_useState","useState","x","y","width","height","top","left","bottom","right","_useState2","_slicedToArray","rect","setRect","useResizeObserver","current","onChange","_ref","entry","_entry$contentRect","contentRect","_objectSpread","ref"],"mappings":";+PA0C2B,SAAkCA,GAC3D,IAAMC,EAAcC,EAAAA,cACpBC,EAAwBC,EAAAA,SAAS,CAC/BC,EAAG,EACHC,EAAG,EACHC,MAAO,EACPC,OAAQ,EACRC,IAAK,EACLC,KAAM,EACNC,OAAQ,EACRC,MAAO,IACPC,EAAAC,EAAAA,eAAAX,EAAA,GATKY,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GAoBpB,OATAI,EAAiBA,kBAAEjB,QAAAA,EAAUC,EAAYiB,QAAqB,CAC5DC,SAAU,SAAFC,GAAe,IAAXC,EAAWP,EAAAA,eAAAM,EAAA,GAAN,GACf,GAAKC,EAAL,CAEA,IAAAC,EAA0DD,EAAME,YAAxDlB,EAACiB,EAADjB,EAAGC,EAACgB,EAADhB,EAAGC,EAAKe,EAALf,MAAOC,EAAMc,EAANd,OAAQC,EAAGa,EAAHb,IAAKC,EAAIY,EAAJZ,KAAMC,EAAMW,EAANX,OAAQC,EAAKU,EAALV,MAChDI,EAAQ,CAAEX,EAAAA,EAAGC,EAAAA,EAAGC,MAAAA,EAAOC,OAAAA,EAAQC,IAAAA,EAAKC,KAAAA,EAAMC,OAAAA,EAAQC,MAAAA,GAHtC,CAId,IAGEZ,EAAee,EACnBS,iBAAA,CAASC,IAAKxB,GAAgBc,EAChC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("react"),n=function(){return!1};exports.useMediaQuery=function(r){var t=e.useCallback((function(e){var n=window.matchMedia(r);return n.addEventListener("change",e),function(){n.removeEventListener("change",e)}}),[r]);return e.useSyncExternalStore(t,(function(){return window.matchMedia(r).matches}),n)};
|
|
3
3
|
//# sourceMappingURL=useMediaQuery.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react"),a=require("../useInterval/useInterval.js");exports.useMemory=function(){var u=performance&&"memory"in performance,t=r.useState({jsHeapSizeLimit:0,totalJSHeapSize:0,usedJSHeapSize:0}),n=e._slicedToArray(t,2),s=n[0],i=n[1];return a.useInterval((function(){return i(performance.memory)}),1e3,{enabled:u}),{supported:u,value:s}};
|
|
3
3
|
//# sourceMappingURL=useMemory.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),t=require("react"),n=require("../../utils/helpers/getElement.js"),r=require("../useRefState/useRefState.js");exports.useMouse=function(o){var u=t.useState({x:0,y:0,element:void 0,elementX:0,elementY:0,elementPositionX:0,elementPositionY:0}),i=e._slicedToArray(u,2),s=i[0],l=i[1],a=r.useRefState();return t.useEffect((function(){if(o||a.current){var t=function(t){var r=o?n.getElement(o):a.current;if(r){var u={x:t.pageX,y:t.pageY},i=r.getBoundingClientRect(),s=i.left,c=i.top,m=s+window.scrollX,f=c+window.scrollY,d=t.pageX-m,p=t.pageY-f;u.element=r,u.elementX=d,u.elementY=p,u.elementPositionX=m,u.elementPositionY=f,l((function(t){return e._objectSpread2(e._objectSpread2({},t),u)}))}};return document.addEventListener("mousemove",t),function(){document.removeEventListener("mousemove",t)}}}),[a.current,o]),o?s:e._objectSpread2({ref:a},s)};
|
|
3
3
|
//# sourceMappingURL=useMouse.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var r=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var r=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),e=require("react");exports.useMutation=function(l,n){var o=e.useState(!1),t=r._slicedToArray(o,2),u=t[0],i=t[1],a=e.useState(!1),c=r._slicedToArray(a,2),d=c[0],v=c[1],s=e.useState(!1),y=r._slicedToArray(s,2),p=y[0],S=y[1],f=e.useState(null),_=r._slicedToArray(f,2),m=_[0],D=_[1],E=e.useState(null),b=r._slicedToArray(E,2),T=b[0],A=b[1],j=function(e,n){var o;i(!0);var t=null!==(o=null==n?void 0:n.attempt)&&void 0!==o?o:0;return l(e).then((function(r){var e;return null==n||null===(e=n.onSuccess)||void 0===e||e.call(n,r),A(r),S(!0),i(!1),D(null),v(!1),r})).catch((function(l){var o,u="function"==typeof(null==n?void 0:n.retry)?null==n?void 0:n.retry(t,l):null==n?void 0:n.retry,a="function"==typeof(null==n?void 0:n.retryDelay)?null==n?void 0:n.retryDelay(t,l):null==n?void 0:n.retryDelay;return"boolean"==typeof u&&u||u&&u>t?a?void setTimeout((function(){return j(e,r._objectSpread2(r._objectSpread2({},n),{},{attempt:t+1}))}),a):j(e,r._objectSpread2(r._objectSpread2({},n),{},{attempt:t+1})):(null==n||null===(o=n.onError)||void 0===o||o.call(n,l),A(null),S(!1),i(!1),D(l),void v(!0))}))},g=function(){var e=r._asyncToGenerator(r._regeneratorRuntime().mark((function e(l,o){var t,u,i,a,c;return r._regeneratorRuntime().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return c={retry:null!==(t=null==o?void 0:o.retry)&&void 0!==t?t:null==n?void 0:n.retry,retryDelay:null!==(u=null==o?void 0:o.retryDelay)&&void 0!==u?u:null==n?void 0:n.retryDelay,onSuccess:null!==(i=null==o?void 0:o.onSuccess)&&void 0!==i?i:null==n?void 0:n.onSuccess,onError:null!==(a=null==o?void 0:o.onError)&&void 0!==a?a:null==n?void 0:n.onError},r.abrupt("return",j(l,c));case 2:case"end":return r.stop()}}),e)})));return function(r,l){return e.apply(this,arguments)}}();return{data:T,error:m,mutate:function(r,e){var l,o,t,u,i={retry:null!==(l=null==e?void 0:e.retry)&&void 0!==l?l:null==n?void 0:n.retry,retryDelay:null!==(o=null==e?void 0:e.retryDelay)&&void 0!==o?o:null==n?void 0:n.retryDelay,onSuccess:null!==(t=null==e?void 0:e.onSuccess)&&void 0!==t?t:null==n?void 0:n.onSuccess,onError:null!==(u=null==e?void 0:e.onError)&&void 0!==u?u:null==n?void 0:n.onError};j(r,i)},mutateAsync:g,isLoading:u,isError:d,isSuccess:p}};
|
|
3
3
|
//# sourceMappingURL=useMutation.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),t=require("react"),r=require("../../utils/helpers/getElement.js"),n=require("../../utils/helpers/isTarget.js"),u=require("../useRefState/useRefState.js");exports.useMutationObserver=function(){var s,i=n.isTarget(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,o=i?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],l=i?arguments.length<=2?void 0:arguments[2]:arguments.length<=1?void 0:arguments[1],v=t.useState(),a=e._slicedToArray(v,2),c=a[0],d=a[1],f=null===(s=null==l?void 0:l.enabled)||void 0===s||s,g=u.useRefState(window.document.documentElement),h=t.useRef(o);h.current=o;var b=t.useRef(l);b.current=l,t.useEffect((function(){if(f||i||g.state){var e=i?r.getElement(i):g.current;if(e){var t=new MutationObserver(h.current);return d(t),t.observe(e,b.current),function(){t.disconnect()}}}}),[i,g.state]);var p=function(){return null==c?void 0:c.disconnect()};return i?{stop:p,observer:c}:{ref:g,stop:p,observer:c}};
|
|
3
3
|
//# sourceMappingURL=useMutationObserver.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var n=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var n=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),e=require("react"),i=function(){var n,e,i;return(null===(n=navigator)||void 0===n?void 0:n.connection)||(null===(e=navigator)||void 0===e?void 0:e.mozConnection)||(null===(i=navigator)||void 0===i?void 0:i.webkitConnection)};exports.getConnection=i,exports.useNetwork=function(){var o=e.useState((function(){if("undefined"==typeof navigator)return{online:!1,type:void 0,effectiveType:void 0,saveData:!1,downlink:0,downlinkMax:0,rtt:0};var n=navigator.onLine,e=i();return{online:n,downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type}})),t=n._slicedToArray(o,2),v=t[0],l=t[1];return e.useEffect((function(){var n=function(){var n=navigator.onLine,e=i();l({online:n,downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type})};window.addEventListener("online",n,{passive:!0}),window.addEventListener("offline",n,{passive:!0});var e=i();return e&&e.addEventListener("change",n,{passive:!0}),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n),e&&e.removeEventListener("change",n)}})),v};
|
|
3
3
|
//# sourceMappingURL=useNetwork.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),n=require("react");exports.useOffsetPagination=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=a.total,t=void 0===i?Number.POSITIVE_INFINITY:i,r=a.pageSize,u=void 0===r?10:r,g=a.initialPage,o=void 0===g?1:g,c=a.onPageChange,f=void 0===c?function(){}:c,p=a.onPageCountChange,s=void 0===p?function(){}:p,v=a.onPageSizeChange,S=void 0===v?function(){}:v,l=n.useState(o),z=e._slicedToArray(l,2),P=z[0],d=z[1],h=n.useRef(f),C=n.useRef(s),I=n.useRef(S);h.current=f,C.current=s,I.current=S;var x=Math.max(1,Math.ceil(t/u)),E=1===P,N=P===x;return n.useEffect((function(){C.current({page:P,pageSize:u})}),[x]),n.useEffect((function(){I.current({page:P,pageSize:u})}),[u]),{page:P,set:function(e){d(e),f({page:e,pageSize:u})},currentPageSize:u,isFirstPage:E,isLastPage:N,pageCount:x,next:function(){if(N)return f({page:x,pageSize:u});d((function(e){var n=e+1;return f({page:n,pageSize:u}),n}))},prev:function(){if(E)return f({page:1,pageSize:u});d((function(e){var n=e-1;return f({page:n,pageSize:u}),n}))}}};
|
|
3
3
|
//# sourceMappingURL=useOffsetPagination.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var n=require("react"),e=function(){return navigator.onLine},t=function(){return!1},r=function(n){return window.addEventListener("online",n),window.addEventListener("offline",n),function(){window.removeEventListener("online",n),window.removeEventListener("offline",n)}};exports.useOnline=function(){return n.useSyncExternalStore(r,e,t)};
|
|
3
3
|
//# sourceMappingURL=useOnline.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("react"),t=function(){if("undefined"==typeof window)return"undetermined";var e=window.navigator.userAgent;return/Macintosh|MacIntel|MacPPC|Mac68K/i.test(e)?"macos":/iPhone|iPad|iPod/i.test(e)?"ios":/Win32|Win64|Windows|WinCE/i.test(e)?"windows":/Android/i.test(e)?"android":/Linux/i.test(e)?"linux":"undetermined"};exports.getOperatingSystem=t,exports.useOperatingSystem=function(){
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),i=require("react"),t=function(){if("undefined"==typeof window)return"undetermined";var e=window.navigator.userAgent;return/Macintosh|MacIntel|MacPPC|Mac68K/i.test(e)?"macos":/iPhone|iPad|iPod/i.test(e)?"ios":/Win32|Win64|Windows|WinCE/i.test(e)?"windows":/Android/i.test(e)?"android":/Linux/i.test(e)?"linux":"undetermined"};exports.getOperatingSystem=t,exports.useOperatingSystem=function(){var n=i.useState(t());return e._slicedToArray(n,1)[0]};
|
|
3
3
|
//# sourceMappingURL=useOperatingSystem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOperatingSystem.js","sources":["../../../../src/hooks/useOperatingSystem/useOperatingSystem.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useOperatingSystem.js","sources":["../../../../src/hooks/useOperatingSystem/useOperatingSystem.ts"],"sourcesContent":["import { useState } from 'react';\n\n/** The operating system type */\nexport type OperatingSystem = 'android' | 'ios' | 'linux' | 'macos' | 'undetermined' | 'windows';\n\nexport const getOperatingSystem = (): OperatingSystem => {\n if (typeof window === 'undefined') return 'undetermined';\n\n const { userAgent } = window.navigator;\n\n if (/Macintosh|MacIntel|MacPPC|Mac68K/i.test(userAgent)) return 'macos';\n if (/iPhone|iPad|iPod/i.test(userAgent)) return 'ios';\n if (/Win32|Win64|Windows|WinCE/i.test(userAgent)) return 'windows';\n if (/Android/i.test(userAgent)) return 'android';\n if (/Linux/i.test(userAgent)) return 'linux';\n\n return 'undetermined';\n};\n\n/**\n * @name useOperatingSystem\n * @description - Hook that returns the operating system of the current browser\n * @category Browser\n *\n * @returns {OperatingSystem} The operating system\n *\n * @example\n * const operatingSystem = useOperatingSystem();\n */\nexport const useOperatingSystem = () => {\n const [osOperatingSystem] = useState<OperatingSystem>(getOperatingSystem());\n return osOperatingSystem;\n};\n"],"names":["getOperatingSystem","window","userAgent","navigator","test","_useState","useState","_slicedToArray"],"mappings":";6FAKaA,EAAqB,WAChC,GAAsB,oBAAXC,OAAwB,MAAO,eAE1C,IAAQC,EAAcD,OAAOE,UAArBD,UAER,MAAI,oCAAoCE,KAAKF,GAAmB,QAC5D,oBAAoBE,KAAKF,GAAmB,MAC5C,6BAA6BE,KAAKF,GAAmB,UACrD,WAAWE,KAAKF,GAAmB,UACnC,SAASE,KAAKF,GAAmB,QAE9B,cACT,0DAYkC,WAChC,IAAAG,EAA4BC,WAA0BN,KACtD,OAD2EO,EAAAA,eAAAF,EAAA,GAAnD,EAE1B"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react"),u=require("../useDidUpdate/useDidUpdate.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useOptimistic=function(t,i){var s=r.useState(t),n=e._slicedToArray(s,2),c=n[0],a=n[1],o=r.useRef(i);o.current=i;var f=r.useState(!1),l=e._slicedToArray(f,2),p=l[0],d=l[1];u.useDidUpdate((function(){p&&(a(t),d(!1))}),[p]);return[c,function(e,r){return a((function(r){return o.current(r,e)})),r.finally((function(){return d(!0)}))}]};
|
|
3
3
|
//# sourceMappingURL=useOptimistic.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),n=require("react");exports.useOrientation=function(){var r=n.useState({angle:0,type:"landscape-primary"}),t=e._slicedToArray(r,2),i=t[0],a=t[1];return n.useEffect((function(){var e=function(){var e=window.screen.orientation,n=e.angle,r=e.type;a({angle:n,type:r})};return window.screen.orientation.addEventListener("change",e),function(){return window.screen.orientation.removeEventListener("change",e)}}),[]),i};
|
|
3
3
|
//# sourceMappingURL=useOrientation.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var r=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var r=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),e=require("react");exports.useOtpCredential=function(){for(var n,t,o=arguments.length,u=new Array(o),a=0;a<o;a++)u[a]=arguments[a];var i=u[0]instanceof Function?u[0]:null===(n=u[0])||void 0===n?void 0:n.onSuccess,c=u[0]instanceof Function?null===(t=u[0])||void 0===t?void 0:t.onError:void 0,s="undefined"!=typeof navigator&&"OTPCredential"in window,l=e.useState(!1),p=r._slicedToArray(l,2),d=p[0],f=p[1],v=e.useRef(new AbortController),b=function(){var e=r._asyncToGenerator(r._regeneratorRuntime().mark((function e(){var n;return r._regeneratorRuntime().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(s){r.next=2;break}return r.abrupt("return");case 2:return v.current=new AbortController,r.prev=3,r.next=6,navigator.credentials.get({otp:{transport:["sms"]},signal:v.current.signal});case 6:return n=r.sent,null==i||i(n),f(!1),r.abrupt("return",n);case 12:r.prev=12,r.t0=r.catch(3),null==c||c(r.t0);case 15:case"end":return r.stop()}}),e,null,[[3,12]])})));return function(){return e.apply(this,arguments)}}();return{supported:s,abort:function(){v.current.abort(),v.current=new AbortController,v.current.signal.onabort=function(){return f(!0)}},aborted:d,get:b}};
|
|
3
3
|
//# sourceMappingURL=useOtpCredential.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),t=require("react"),n=require("../useEvent/useEvent.js");exports.usePageLeave=function(r){var u=t.useState(!1),s=e._slicedToArray(u,2),i=s[0],o=s[1],v=n.useEvent((function(){if(i)return o(!1);null==r||r(),o(!0)}));return t.useEffect((function(){return document.addEventListener("mouseleave",v,{passive:!0}),document.addEventListener("mouseenter",v,{passive:!0}),function(){document.removeEventListener("mouseenter",v),document.removeEventListener("mouseleave",v)}}),[]),i};
|
|
3
3
|
//# sourceMappingURL=usePageLeave.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),t=require("react"),n=require("../../utils/helpers/getElement.js"),r=require("../useEvent/useEvent.js"),i=function(){function t(n,r){e._classCallCheck(this,t),this.x=n,this.y=r}return e._createClass(t,[{key:"update",value:function(e){this.x=e.x,this.y=e.y}},{key:"getDifferenceTo",value:function(e){return new t(this.x-e.x,this.y-e.y)}},{key:"getDistanceTo",value:function(e){var t=this.getDifferenceTo(e);return Math.sqrt(Math.pow(t.x,2)+Math.pow(t.y,2))}},{key:"getAngleTo",value:function(e){var t=this.getDifferenceTo(e);return Math.atan2(t.y,t.x)}},{key:"equalsTo",value:function(e){return this.x===e.x&&this.y===e.y}},{key:"moveByAngle",value:function(e,t){var n=e+Math.PI/2;return this.x+=Math.sin(n)*t,this.y-=Math.cos(n)*t,this}}])}(),u=function(){return e._createClass((function t(n){var r=n.x,u=n.y,s=n.radius,o=n.smooth;e._classCallCheck(this,t),e._defineProperty(this,"smooth",!1),e._defineProperty(this,"points",[]),e._defineProperty(this,"lines",[]),this.smooth=o,this.pointer=new i(r,u),this.brush=new i(r,u),this.radius=s,this.points=[],this.lines=[]}),[{key:"getBrushCoordinates",value:function(){return{x:this.brush.x,y:this.brush.y}}},{key:"getPointerCoordinates",value:function(){return{x:this.pointer.x,y:this.pointer.y}}},{key:"update",value:function(e){if(this.pointer.equalsTo(e))return!1;if(this.pointer.update(e),!this.smooth)return this.brush.update(e),this.points.push(this.getBrushCoordinates()),!0;var t=this.pointer.getDistanceTo(this.brush),n=this.pointer.getAngleTo(this.brush);if(Math.round(10*(t-this.radius))/10>0){var r=n+Math.PI/2;return this.brush.update({x:this.brush.x+Math.sin(r)*(t-this.radius),y:this.brush.y-Math.cos(r)*(t-this.radius)}),this.points.push(this.getBrushCoordinates()),!0}return!1}}])}();exports.Paint=u,exports.Pointer=i,exports.usePaint=function(){var i,s,o,a,c,l="object"!==e._typeof(arguments.length<=0?void 0:arguments[0])||"current"in(arguments.length<=0?void 0:arguments[0])?arguments.length<=0?void 0:arguments[0]:void 0,h=l?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0],v=null!==(i=null==h?void 0:h.color)&&void 0!==i?i:"black",d=null!==(s=null==h?void 0:h.opacity)&&void 0!==s?s:1,f=null!==(o=null==h?void 0:h.radius)&&void 0!==o?o:10,p=t.useRef(new u({x:0,y:0,radius:null!==(a=null==h?void 0:h.radius)&&void 0!==a?a:10,smooth:null!==(c=null==h?void 0:h.smooth)&&void 0!==c&&c})),y=t.useState(!1),g=e._slicedToArray(y,2),x=g[0],m=g[1],E=t.useRef(null),b=t.useRef(null),w=function(e,t,n,r){if(b.current){b.current.globalAlpha=n,b.current.strokeStyle=t,b.current.lineWidth=2*r,b.current.lineCap="round",b.current.lineJoin="round";var i=e[0],u=e[1];b.current.beginPath();for(var s=1;s<e.length;s+=1){var o={x:i.x+(u.x-i.x)/2,y:i.y+(u.y-i.y)/2};b.current.quadraticCurveTo(i.x,i.y,o.x,o.y),i=e[s],u=e[s+1]}b.current.lineTo(i.x,i.y),b.current.stroke()}},M=function(){b.current&&b.current.clearRect(0,0,b.current.canvas.width,b.current.canvas.height)},k=r.useEvent((function(e){var t;if(x){null==h||null===(t=h.onMouseMove)||void 0===t||t.call(h,e,p.current);var n={x:e.offsetX,y:e.offsetY};p.current.update(n)&&b.current&&(M(),b.current.clearRect(0,0,b.current.canvas.width,b.current.canvas.height),p.current.lines.forEach((function(e){var t=e.points,n=e.color,r=e.opacity,i=e.radius;return w(t,n,r,i)})),w(p.current.points,v,d,f))}})),C=r.useEvent((function(e){var t;if(b.current){var n={x:e.offsetX,y:e.offsetY};p.current.brush.update(n),p.current.points.push(n),w(p.current.points,v,d,f),null==h||null===(t=h.onMouseDown)||void 0===t||t.call(h,e,p.current),m(!0)}})),T=r.useEvent((function(e){var t;b.current&&(p.current.points.length&&(p.current.lines.push({points:p.current.points,color:v,opacity:d,radius:f}),p.current.points=[]),null==h||null===(t=h.onMouseUp)||void 0===t||t.call(h,e,p.current),m(!1))})),P=function(){b.current&&(M(),p.current.lines=[],p.current.points=[])},_=function(){b.current&&(M(),p.current.lines.pop(),p.current.lines.forEach((function(e){var t=e.points,n=e.color,r=e.opacity,i=e.radius;return w(t,n,r,i)})))};return t.useEffect((function(){var e=l?n.getElement(l):E.current;if(e)return b.current=e.getContext("2d"),null!=h&&h.initialLines&&(p.current.lines=h.initialLines,h.initialLines.forEach((function(e){var t=e.points,n=e.color,r=e.opacity,i=e.radius;return w(t,n,r,i)}))),e.addEventListener("mousedown",C),e.addEventListener("mousemove",k),e.addEventListener("mouseup",T),function(){e&&(e.removeEventListener("mousedown",C),e.removeEventListener("mousemove",k),e.removeEventListener("mouseup",T))}}),[]),l?{drawing:x,clear:P,undo:_,draw:w,lines:p.current.lines}:{ref:E,drawing:x,clear:P,undo:_,draw:w,lines:p.current.lines}};
|
|
3
3
|
//# sourceMappingURL=usePaint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaint.js","sources":["../../../../src/hooks/usePaint/usePaint.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement } from '@/utils/helpers';\n\nimport type { Point } from './helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\nimport { Paint } from './helpers';\n\nconst DEFAULT_BRUSH_RADIUS = 10;\n\nexport interface UsePaintOptions {\n /** Brush color */\n color?: string;\n /** Initial lines */\n initialLines?: Paint['lines'];\n /** Brush opacity */\n opacity?: number;\n /** Brush radius */\n radius?: number;\n /** Smooth brush movement */\n smooth?: boolean;\n /** Callback when the mouse is down */\n onMouseDown?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is moved */\n onMouseMove?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is up */\n onMouseUp?: (event: MouseEvent, paint: Paint) => void;\n}\n\nexport interface UsePaintReturn {\n drawing: boolean;\n lines: Paint['lines'];\n clear: () => void;\n draw: (points: Point[], color: string, opacity: number, radius: number) => void;\n undo: () => void;\n}\n\n/** The use paint return type */\nexport type UsePaintTarget =\n | (() => HTMLCanvasElement)\n | HTMLCanvasElement\n | RefObject<HTMLCanvasElement>;\n\nexport interface UsePaint {\n <Target extends UsePaintTarget>(target: Target, options?: UsePaintOptions): UsePaintReturn;\n\n (\n options?: UsePaintOptions,\n target?: never\n ): { ref: RefObject<HTMLCanvasElement> } & UsePaintReturn;\n}\n\n/**\n * @name usePaint\n * @description - Hook that allows you to draw in a specific area\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be painted\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const drawing = usePaint(canvasRef);\n *\n * @overload\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn & { ref: RefObject<HTMLCanvasElement> }} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const { ref, drawing } = usePaint();\n */\nexport const usePaint = ((...params: any[]) => {\n const target = (\n typeof params[0] === 'object' && !('current' in params[0]) ? undefined : params[0]\n ) as UsePaintTarget | undefined;\n const options = (target ? params[1] : params[0]) as UsePaintOptions | undefined;\n\n const color = options?.color ?? 'black';\n const opacity = options?.opacity ?? 1;\n const radius = options?.radius ?? DEFAULT_BRUSH_RADIUS;\n\n const paintRef = useRef<Paint>(\n new Paint({\n x: 0,\n y: 0,\n radius: options?.radius ?? DEFAULT_BRUSH_RADIUS,\n smooth: options?.smooth ?? false\n })\n );\n const [drawing, setIsDrawing] = useState(false);\n const internalRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D | null>(null);\n\n const draw = (points: Point[], color: string, opacity: number, radius: number) => {\n if (!contextRef.current) return;\n\n contextRef.current.globalAlpha = opacity;\n contextRef.current.strokeStyle = color;\n contextRef.current.lineWidth = radius * 2;\n contextRef.current.lineCap = 'round';\n contextRef.current.lineJoin = 'round';\n\n let p1 = points[0];\n let p2 = points[1];\n\n contextRef.current.beginPath();\n\n for (let i = 1; i < points.length; i += 1) {\n const midPoint = {\n x: p1.x + (p2.x - p1.x) / 2,\n y: p1.y + (p2.y - p1.y) / 2\n };\n contextRef.current.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n p1 = points[i];\n p2 = points[i + 1];\n }\n contextRef.current.lineTo(p1.x, p1.y);\n contextRef.current.stroke();\n };\n\n const clearCanvas = () => {\n if (!contextRef.current) return;\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n };\n\n const onMouseMove = useEvent((event: MouseEvent) => {\n if (!drawing) return;\n options?.onMouseMove?.(event, paintRef.current);\n\n const point = { x: event.offsetX, y: event.offsetY };\n\n const isUpdated = paintRef.current.update(point);\n\n if (!isUpdated) return;\n if (!contextRef.current) return;\n clearCanvas();\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n\n // const brush = paintRef.current.getBrushCoordinates();\n // // Draw brush point\n // contextRef.current.beginPath();\n // contextRef.current.fillStyle = 'red';\n // contextRef.current.arc(brush.x, brush.y, radius, 0, Math.PI * 2, true);\n // contextRef.current.fill();\n\n // // Draw the lazy radius.\n // contextRef.current.beginPath();\n // contextRef.current.strokeStyle = '#ccc';\n // contextRef.current.arc(brush.x, brush.y, radius * 2, 0, Math.PI * 2, true);\n // contextRef.current.stroke();\n\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n draw(paintRef.current.points, color, opacity, radius);\n });\n\n const onMouseDown = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n const point = { x: event.offsetX, y: event.offsetY };\n paintRef.current.brush.update(point);\n paintRef.current.points.push(point);\n draw(paintRef.current.points, color, opacity, radius);\n\n options?.onMouseDown?.(event, paintRef.current);\n setIsDrawing(true);\n });\n\n const onMouseUp = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n if (paintRef.current.points.length) {\n paintRef.current.lines.push({ points: paintRef.current.points, color, opacity, radius });\n paintRef.current.points = [];\n }\n\n options?.onMouseUp?.(event, paintRef.current);\n setIsDrawing(false);\n });\n\n const clear = () => {\n if (!contextRef.current) return;\n clearCanvas();\n paintRef.current.lines = [];\n paintRef.current.points = [];\n };\n\n const undo = () => {\n if (!contextRef.current) return;\n clearCanvas();\n\n paintRef.current.lines.pop();\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n };\n\n useEffect(() => {\n const element = (target ? getElement(target) : internalRef.current) as HTMLCanvasElement;\n if (!element) return;\n contextRef.current = element.getContext('2d');\n\n if (options?.initialLines) {\n paintRef.current.lines = options.initialLines;\n options.initialLines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n }\n\n element.addEventListener('mousedown', onMouseDown);\n element.addEventListener('mousemove', onMouseMove);\n element.addEventListener('mouseup', onMouseUp);\n\n return () => {\n if (!element) return;\n element.removeEventListener('mousedown', onMouseDown);\n element.removeEventListener('mousemove', onMouseMove);\n element.removeEventListener('mouseup', onMouseUp);\n };\n }, []);\n\n if (target) return { drawing, clear, undo, draw, lines: paintRef.current.lines };\n return { ref: internalRef, drawing, clear, undo, draw, lines: paintRef.current.lines };\n}) as UsePaint;\n"],"names":["_options$color","_options$opacity","_options$radius","_options$radius2","_options$smooth","target","_typeof","arguments","length","undefined","options","color","opacity","radius","paintRef","useRef","Paint","x","y","smooth","_useState","useState","_useState2","_slicedToArray","drawing","setIsDrawing","internalRef","contextRef","draw","points","current","globalAlpha","strokeStyle","lineWidth","lineCap","lineJoin","p1","p2","beginPath","i","midPoint","quadraticCurveTo","lineTo","stroke","clearCanvas","clearRect","canvas","width","height","onMouseMove","useEvent","event","_options$onMouseMove","call","point","offsetX","offsetY","update","lines","forEach","_ref","onMouseDown","_options$onMouseDown","brush","push","onMouseUp","_options$onMouseUp","clear","undo","pop","_ref2","useEffect","element","getElement","getContext","initialLines","_ref3","addEventListener","removeEventListener","ref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePaint.js","sources":["../../../../src/hooks/usePaint/usePaint.ts"],"sourcesContent":["import type { RefObject } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getElement } from '@/utils/helpers';\n\nimport { useEvent } from '../useEvent/useEvent';\n\nconst DEFAULT_BRUSH_RADIUS = 10;\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport class Pointer implements Point {\n x: number;\n\n y: number;\n\n constructor(x: number, y: number) {\n this.x = x;\n this.y = y;\n }\n\n update(point: Point) {\n this.x = point.x;\n this.y = point.y;\n }\n\n getDifferenceTo(point: Point) {\n return new Pointer(this.x - point.x, this.y - point.y);\n }\n\n getDistanceTo(point: Point) {\n const diff = this.getDifferenceTo(point);\n return Math.sqrt(diff.x ** 2 + diff.y ** 2);\n }\n\n getAngleTo(point: Point) {\n const diff = this.getDifferenceTo(point);\n return Math.atan2(diff.y, diff.x);\n }\n\n equalsTo(point: Point) {\n return this.x === point.x && this.y === point.y;\n }\n\n moveByAngle(\n // The angle in radians\n angle: number,\n // How much the point should be moved\n distance: number\n ) {\n // Rotate the angle based on the browser coordinate system ([0,0] in the top left)\n const angleRotated = angle + Math.PI / 2;\n\n this.x += Math.sin(angleRotated) * distance;\n this.y -= Math.cos(angleRotated) * distance;\n\n return this;\n }\n}\n\nexport class Paint {\n pointer: Pointer;\n\n brush: Pointer;\n\n radius: number;\n\n smooth: boolean = false;\n\n points: Point[] = [];\n\n lines: { points: Point[]; color: string; radius: number; opacity: number }[] = [];\n\n constructor({ x, y, radius, smooth }: { x: number; y: number; radius: number; smooth: boolean }) {\n this.smooth = smooth;\n this.pointer = new Pointer(x, y);\n this.brush = new Pointer(x, y);\n this.radius = radius;\n this.points = [];\n this.lines = [];\n }\n\n getBrushCoordinates() {\n return {\n x: this.brush.x,\n y: this.brush.y\n };\n }\n\n getPointerCoordinates() {\n return {\n x: this.pointer.x,\n y: this.pointer.y\n };\n }\n\n update(point: Point) {\n if (this.pointer.equalsTo(point)) return false;\n this.pointer.update(point);\n\n if (!this.smooth) {\n this.brush.update(point);\n this.points.push(this.getBrushCoordinates());\n return true;\n }\n\n const distance = this.pointer.getDistanceTo(this.brush);\n const angle = this.pointer.getAngleTo(this.brush);\n const isOutside = Math.round((distance - this.radius) * 10) / 10 > 0;\n\n if (isOutside) {\n const angleRotated = angle + Math.PI / 2;\n this.brush.update({\n x: this.brush.x + Math.sin(angleRotated) * (distance - this.radius),\n y: this.brush.y - Math.cos(angleRotated) * (distance - this.radius)\n });\n this.points.push(this.getBrushCoordinates());\n return true;\n }\n\n return false;\n }\n}\n\nexport interface UsePaintOptions {\n /** Brush color */\n color?: string;\n /** Initial lines */\n initialLines?: Paint['lines'];\n /** Brush opacity */\n opacity?: number;\n /** Brush radius */\n radius?: number;\n /** Smooth brush movement */\n smooth?: boolean;\n /** Callback when the mouse is down */\n onMouseDown?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is moved */\n onMouseMove?: (event: MouseEvent, paint: Paint) => void;\n /** Callback when the mouse is up */\n onMouseUp?: (event: MouseEvent, paint: Paint) => void;\n}\n\nexport interface UsePaintReturn {\n drawing: boolean;\n lines: Paint['lines'];\n clear: () => void;\n draw: (points: Point[], color: string, opacity: number, radius: number) => void;\n undo: () => void;\n}\n\n/** The use paint return type */\nexport type UsePaintTarget =\n | (() => HTMLCanvasElement)\n | HTMLCanvasElement\n | RefObject<HTMLCanvasElement>;\n\nexport interface UsePaint {\n <Target extends UsePaintTarget>(target: Target, options?: UsePaintOptions): UsePaintReturn;\n\n (\n options?: UsePaintOptions,\n target?: never\n ): { ref: RefObject<HTMLCanvasElement> } & UsePaintReturn;\n}\n\n/**\n * @name usePaint\n * @description - Hook that allows you to draw in a specific area\n * @category Browser\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element to be painted\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const drawing = usePaint(canvasRef);\n *\n * @overload\n * @param {UsePaintOptions} [options] The options to be used\n * @returns {UsePaintReturn & { ref: RefObject<HTMLCanvasElement> }} An object containing the current pencil options and functions to interact with the paint\n *\n * @example\n * const { ref, drawing } = usePaint();\n */\nexport const usePaint = ((...params: any[]) => {\n const target = (\n typeof params[0] === 'object' && !('current' in params[0]) ? undefined : params[0]\n ) as UsePaintTarget | undefined;\n const options = (target ? params[1] : params[0]) as UsePaintOptions | undefined;\n\n const color = options?.color ?? 'black';\n const opacity = options?.opacity ?? 1;\n const radius = options?.radius ?? DEFAULT_BRUSH_RADIUS;\n\n const paintRef = useRef<Paint>(\n new Paint({\n x: 0,\n y: 0,\n radius: options?.radius ?? DEFAULT_BRUSH_RADIUS,\n smooth: options?.smooth ?? false\n })\n );\n const [drawing, setIsDrawing] = useState(false);\n const internalRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D | null>(null);\n\n const draw = (points: Point[], color: string, opacity: number, radius: number) => {\n if (!contextRef.current) return;\n\n contextRef.current.globalAlpha = opacity;\n contextRef.current.strokeStyle = color;\n contextRef.current.lineWidth = radius * 2;\n contextRef.current.lineCap = 'round';\n contextRef.current.lineJoin = 'round';\n\n let p1 = points[0];\n let p2 = points[1];\n\n contextRef.current.beginPath();\n\n for (let i = 1; i < points.length; i += 1) {\n const midPoint = {\n x: p1.x + (p2.x - p1.x) / 2,\n y: p1.y + (p2.y - p1.y) / 2\n };\n contextRef.current.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n p1 = points[i];\n p2 = points[i + 1];\n }\n contextRef.current.lineTo(p1.x, p1.y);\n contextRef.current.stroke();\n };\n\n const clearCanvas = () => {\n if (!contextRef.current) return;\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n };\n\n const onMouseMove = useEvent((event: MouseEvent) => {\n if (!drawing) return;\n options?.onMouseMove?.(event, paintRef.current);\n\n const point = { x: event.offsetX, y: event.offsetY };\n\n const isUpdated = paintRef.current.update(point);\n\n if (!isUpdated) return;\n if (!contextRef.current) return;\n clearCanvas();\n contextRef.current.clearRect(\n 0,\n 0,\n contextRef.current.canvas.width,\n contextRef.current.canvas.height\n );\n\n // const brush = paintRef.current.getBrushCoordinates();\n // // Draw brush point\n // contextRef.current.beginPath();\n // contextRef.current.fillStyle = 'red';\n // contextRef.current.arc(brush.x, brush.y, radius, 0, Math.PI * 2, true);\n // contextRef.current.fill();\n\n // // Draw the lazy radius.\n // contextRef.current.beginPath();\n // contextRef.current.strokeStyle = '#ccc';\n // contextRef.current.arc(brush.x, brush.y, radius * 2, 0, Math.PI * 2, true);\n // contextRef.current.stroke();\n\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n draw(paintRef.current.points, color, opacity, radius);\n });\n\n const onMouseDown = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n const point = { x: event.offsetX, y: event.offsetY };\n paintRef.current.brush.update(point);\n paintRef.current.points.push(point);\n draw(paintRef.current.points, color, opacity, radius);\n\n options?.onMouseDown?.(event, paintRef.current);\n setIsDrawing(true);\n });\n\n const onMouseUp = useEvent((event: MouseEvent) => {\n if (!contextRef.current) return;\n\n if (paintRef.current.points.length) {\n paintRef.current.lines.push({ points: paintRef.current.points, color, opacity, radius });\n paintRef.current.points = [];\n }\n\n options?.onMouseUp?.(event, paintRef.current);\n setIsDrawing(false);\n });\n\n const clear = () => {\n if (!contextRef.current) return;\n clearCanvas();\n paintRef.current.lines = [];\n paintRef.current.points = [];\n };\n\n const undo = () => {\n if (!contextRef.current) return;\n clearCanvas();\n\n paintRef.current.lines.pop();\n paintRef.current.lines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n };\n\n useEffect(() => {\n const element = (target ? getElement(target) : internalRef.current) as HTMLCanvasElement;\n if (!element) return;\n contextRef.current = element.getContext('2d');\n\n if (options?.initialLines) {\n paintRef.current.lines = options.initialLines;\n options.initialLines.forEach(({ points, color, opacity, radius }) =>\n draw(points, color, opacity, radius)\n );\n }\n\n element.addEventListener('mousedown', onMouseDown);\n element.addEventListener('mousemove', onMouseMove);\n element.addEventListener('mouseup', onMouseUp);\n\n return () => {\n if (!element) return;\n element.removeEventListener('mousedown', onMouseDown);\n element.removeEventListener('mousemove', onMouseMove);\n element.removeEventListener('mouseup', onMouseUp);\n };\n }, []);\n\n if (target) return { drawing, clear, undo, draw, lines: paintRef.current.lines };\n return { ref: internalRef, drawing, clear, undo, draw, lines: paintRef.current.lines };\n}) as UsePaint;\n"],"names":["Pointer","x","y","_classCallCheck","this","_createClass","key","value","point","diff","getDifferenceTo","Math","sqrt","pow","atan2","angle","distance","angleRotated","PI","sin","cos","Paint","_ref","radius","smooth","_defineProperty","pointer","brush","points","lines","equalsTo","update","push","getBrushCoordinates","getDistanceTo","getAngleTo","round","_options$color","_options$opacity","_options$radius","_options$radius2","_options$smooth","target","_typeof","arguments","length","undefined","options","color","opacity","paintRef","useRef","_useState","useState","_useState2","_slicedToArray","drawing","setIsDrawing","internalRef","contextRef","draw","current","globalAlpha","strokeStyle","lineWidth","lineCap","lineJoin","p1","p2","beginPath","i","midPoint","quadraticCurveTo","lineTo","stroke","clearCanvas","clearRect","canvas","width","height","onMouseMove","useEvent","event","_options$onMouseMove","call","offsetX","offsetY","forEach","_ref2","onMouseDown","_options$onMouseDown","onMouseUp","_options$onMouseUp","clear","undo","pop","_ref3","useEffect","element","getElement","getContext","initialLines","_ref4","addEventListener","removeEventListener","ref"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),t=require("react"),a=require("../useDeviceOrientation/useDeviceOrientation.js"),n=require("../useMouse/useMouse.js"),r=require("../useRefState/useRefState.js"),i=require("../useScreenOrientation/useScreenOrientation.js");require("../../utils/helpers/getElement.js");exports.useParallax=function(){var u,l=(arguments.length<=0?void 0:arguments[0])instanceof Function||(arguments.length<=0?void 0:arguments[0])&&"current"in(arguments.length<=0?void 0:arguments[0])||(arguments.length<=0?void 0:arguments[0])instanceof Element?arguments.length<=0?void 0:arguments[0]:void 0,o=r.useRefState(),s=n.useMouse(null!=l?l:o.current),c=i.useScreenOrientation(),v=a.useDeviceOrientation(),d=null!==(u=l?arguments.length<=1?void 0:arguments[1]:arguments.length<=0?void 0:arguments[0])&&void 0!==u?u:{},m=d.deviceOrientationRollAdjust,f=void 0===m?function(e){return e}:m,p=d.deviceOrientationTiltAdjust,g=void 0===p?function(e){return e}:p,h=d.mouseRollAdjust,y=void 0===h?function(e){return e}:h,b=d.mouseTiltAdjust,O=void 0===b?function(e){return e}:b,j=t.useState({roll:0,tilt:0,source:"mouse"}),q=e._slicedToArray(j,2),R=q[0],S=q[1],k=function(){return v.supported&&(v.value.alpha||v.value.gamma)?"deviceOrientation":"mouse"};return t.useEffect((function(){if(s.element){var e=k(),t=function(){if("deviceOrientation"===k()){var e;switch(c.value.orientationType){case"landscape-primary":e=v.value.gamma/90;break;case"landscape-secondary":e=-v.value.gamma/90;break;case"portrait-primary":default:e=-v.value.beta/90;break;case"portrait-secondary":e=v.value.beta/90}return f(e)}if(!s.element)return 0;var t=s.y-s.elementPositionY,a=s.element.getBoundingClientRect().height;return y(-(t-a/2)/a)}(),a=function(){if("deviceOrientation"===k()){var e;switch(c.value.orientationType){case"landscape-primary":e=v.value.beta/90;break;case"landscape-secondary":e=-v.value.beta/90;break;case"portrait-primary":default:e=v.value.gamma/90;break;case"portrait-secondary":e=-v.value.gamma/90}return g(e)}if(!s.element)return 0;var t=s.x-s.elementPositionX,a=s.element.getBoundingClientRect().width;return O((t-a/2)/a)}();S({roll:t,source:e,tilt:a})}}),[c.value.angle,c.value.orientationType,v.value.gamma,v.value.beta,v.value.alpha,v.value.absolute,s.x,s.y,s.element]),l?{value:R}:{ref:o,value:R}};
|
|
3
3
|
//# sourceMappingURL=useParallax.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react");exports.usePerformanceObserver=function(n,t){var u="undefined"!=typeof window&&"undefined"!=typeof PerformanceObserver,i=r.useState([]),c=e._slicedToArray(i,2),o=c[0],s=c[1],f=r.useRef(null),a=r.useRef();a.current=t;var l=function(){if(u){var e=new PerformanceObserver((function(e,r){var n;s(e.getEntries()),null===(n=a.current)||void 0===n||n.call(a,e,r)}));e.observe(n),f.current=e}},v=function(){var e;u&&(null===(e=f.current)||void 0===e||e.disconnect(),f.current=null)};return r.useEffect((function(){if(u)return n.immediate&&l(),function(){v()}}),[]),{supported:u,entries:o,start:l,stop:v}};
|
|
3
|
+
//# sourceMappingURL=usePerformanceObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePerformanceObserver.js","sources":["../../../../src/hooks/usePerformanceObserver/usePerformanceObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use performance observer options type */\nexport type UsePerformanceObserverOptions = PerformanceObserverInit & {\n /** Whether to start the observer immediately */\n immediate?: boolean;\n};\n\n/**\n * @name usePerformanceObserver\n * @description - Hook that allows you to observe performance entries\n * @category Sensor\n *\n * @param {UsePerformanceObserverOptions} options The options for the performance observer\n * @param {PerformanceObserverCallback} callback The function to handle performance entries\n * @returns {object} An object containing the observer's support status and methods to start and stop the observer\n *\n * @example\n * const { supported, entries, start, stop } = usePerformanceObserver();\n */\nexport const usePerformanceObserver = (\n options: UsePerformanceObserverOptions,\n callback?: PerformanceObserverCallback\n) => {\n const supported = typeof window !== 'undefined' && typeof PerformanceObserver !== 'undefined';\n const [entries, setEntries] = useState<PerformanceEntry[]>([]);\n\n const observerRef = useRef<PerformanceObserver | null>(null);\n const internalCallback = useRef<PerformanceObserverCallback | null>();\n internalCallback.current = callback;\n\n const start = () => {\n if (!supported) return;\n const observer = new PerformanceObserver((entryList, observer) => {\n setEntries(entryList.getEntries());\n internalCallback.current?.(entryList, observer);\n });\n observer.observe(options);\n observerRef.current = observer;\n };\n\n const stop = () => {\n if (!supported) return;\n observerRef.current?.disconnect();\n observerRef.current = null;\n };\n\n useEffect(() => {\n if (!supported) return;\n if (options.immediate) start();\n\n return () => {\n stop();\n };\n }, []);\n\n return { supported, entries, start, stop };\n};\n"],"names":["options","callback","supported","window","PerformanceObserver","_useState","useState","_useState2","_slicedToArray","entries","setEntries","observerRef","useRef","internalCallback","current","start","observer","entryList","_internalCallback$cur","getEntries","call","observe","stop","_observerRef$current","disconnect","useEffect","immediate"],"mappings":";4HAoBsC,SACpCA,EACAC,GAEA,IAAMC,EAA8B,oBAAXC,QAAyD,oBAAxBC,oBAC1DC,EAA8BC,EAAQA,SAAqB,IAAGC,EAAAC,EAAAA,eAAAH,EAAA,GAAvDI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAEpBI,EAAcC,EAAMA,OAA6B,MACjDC,EAAmBD,EAAAA,SACzBC,EAAiBC,QAAUb,EAE3B,IAAMc,EAAQ,WACZ,GAAKb,EAAL,CACA,IAAMc,EAAW,IAAIZ,qBAAoB,SAACa,EAAWD,GAAa,IAAAE,EAChER,EAAWO,EAAUE,sBACrBD,EAAAL,EAAiBC,eAAO,IAAAI,GAAxBA,EAAAE,KAAAP,EAA2BI,EAAWD,EACxC,IACAA,EAASK,QAAQrB,GACjBW,EAAYG,QAAUE,CANN,CAOjB,EAEKM,EAAO,WAAM,IAAAC,EACZrB,IACc,QAAnBqB,EAAAZ,EAAYG,eAAO,IAAAS,GAAnBA,EAAqBC,aACrBb,EAAYG,QAAU,KACvB,EAWD,OATAW,EAAAA,WAAU,WACR,GAAKvB,EAGL,OAFIF,EAAQ0B,WAAWX,IAEhB,WACLO,GACD,CACF,GAAE,IAEI,CAAEpB,UAAAA,EAAWO,QAAAA,EAASM,MAAAA,EAAOO,KAAAA,EACtC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react"),t=require("../useEvent/useEvent.js");exports.usePermission=function(n,u){var s,a=r.useState("prompt"),i=e._slicedToArray(a,2),o=i[0],p=i[1],c="undefined"!=typeof navigator&&"permissions"in navigator,v=null===(s=null==u?void 0:u.enabled)||void 0===s||s,l={name:n},d=t.useEvent(e._asyncToGenerator(e._regeneratorRuntime().mark((function r(){var t;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.permissions.query(l);case 3:return t=e.sent,p(t.state),e.abrupt("return",t.state);case 8:return e.prev=8,e.t0=e.catch(0),p("prompt"),e.abrupt("return","prompt");case 12:case"end":return e.stop()}}),r,null,[[0,8]])}))));return r.useEffect((function(){if(c&&v)return d(),window.addEventListener("change",d),function(){window.removeEventListener("change",d)}}),[n,v]),{state:o,supported:c,query:d}};
|
|
3
3
|
//# sourceMappingURL=usePermission.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),n=require("react");exports.usePointerLock=function(){var t="undefined"!=typeof document&&"pointerLockElement"in document,r=n.useState(),o=e._slicedToArray(r,2),c=o[0],i=o[1];n.useEffect((function(){if(t){var e=function(){var e;if(t){var n=null!==(e=document.pointerLockElement)&&void 0!==e?e:c;n&&n===c&&i(document.pointerLockElement)}},n=function(){var e;if(t){var n=null!==(e=document.pointerLockElement)&&void 0!==e?e:c;if(n&&n===c){var r=document.pointerLockElement?"release":"acquire";throw new Error("Failed to ".concat(r," pointer lock."))}}};return document.addEventListener("pointerlockchange",e),document.addEventListener("pointerlockerror",n),function(){document.removeEventListener("pointerlockchange",e),document.removeEventListener("pointerlockerror",n)}}}),[]);return{supported:t,element:c,lock:function(e){return!!t&&(!(e instanceof Event)&&(e.currentTarget.requestPointerLock(),i(e.currentTarget),!0))},unlock:function(){return!!t&&(!!c&&(document.exitPointerLock(),i(void 0),!0))}}};
|
|
3
3
|
//# sourceMappingURL=usePointerLock.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("react");exports.usePostMessage=function(r,n){var s=e.useRef(n);s.current=n,e.useEffect((function(){var e=function(e){!(!Array.isArray(r)||r.includes(e.origin)&&r.includes("*"))||e.origin!==r&&"*"!==r||s.current(e.data,e)};return window.addEventListener("message",e),function(){return window.removeEventListener("message",e)}}),[]);return function(e){Array.isArray(r)?r.forEach((function(r){return window.postMessage(e,r)})):window.postMessage(e,r)}};
|
|
3
3
|
//# sourceMappingURL=usePostMessage.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("../useMediaQuery/useMediaQuery.js");require("react");exports.usePreferredColorScheme=function(){var r=e.useMediaQuery("(prefers-color-scheme: light)"),u=e.useMediaQuery("(prefers-color-scheme: dark)");return r?"light":u?"dark":"no-preference"};
|
|
3
3
|
//# sourceMappingURL=usePreferredColorScheme.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("../useMediaQuery/useMediaQuery.js");require("react");exports.usePreferredContrast=function(){var r=e.useMediaQuery("(prefers-contrast: more)"),s=e.useMediaQuery("(prefers-contrast: less)"),u=e.useMediaQuery("(prefers-contrast: custom)");return r?"more":s?"less":u?"custom":"no-preference"};
|
|
3
3
|
//# sourceMappingURL=usePreferredContrast.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("../useMediaQuery/useMediaQuery.js");require("react");exports.usePreferredDark=function(){return e.useMediaQuery("(prefers-color-scheme: dark)")};
|
|
3
3
|
//# sourceMappingURL=usePreferredDark.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("react"),n=function(){return window.navigator.languages},r=function(){return[]},t=function(e){return window.addEventListener("languagechange",e),function(){window.removeEventListener("languagechange",e)}};exports.usePreferredLanguages=function(){return e.useSyncExternalStore(t,n,r)};
|
|
3
3
|
//# sourceMappingURL=usePreferredLanguages.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var e=require("../useMediaQuery/useMediaQuery.js");require("react");exports.usePreferredReducedMotion=function(){return e.useMediaQuery("(prefers-reduced-motion: reduce)")?"reduce":"no-preference"};
|
|
3
3
|
//# sourceMappingURL=usePreferredReducedMotion.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
2
|
"use strict";var r=require("react");exports.usePrevious=function(e,u){var t,n=r.useRef(e),c=r.useRef();return(null!==(t=null==u?void 0:u.equality)&&void 0!==t?t:Object.is)(e,n.current)||(c.current=n.current,n.current=e),c.current};
|
|
3
3
|
//# sourceMappingURL=usePrevious.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react"),t=require("../../utils/helpers/getRetry.js"),n=require("../useDidUpdate/useDidUpdate.js"),l=require("../useMount/useMount.js");require("../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js");exports.useQuery=function(u,i){var o,a,c=null===(o=null==i?void 0:i.enabled)||void 0===o||o,s=r.useRef(null!=i&&i.retry?t.getRetry(i.retry):0),d=r.useRef(!1),f=r.useState(!1),v=e._slicedToArray(f,2),y=v[0],h=v[1],p=r.useState(!1),A=e._slicedToArray(p,2),D=A[0],_=A[1],g=r.useState(!1),S=e._slicedToArray(g,2),b=S[0],I=S[1],R=r.useState(!1),T=e._slicedToArray(R,2),q=T[0],j=T[1],m=r.useState(!(null==i||!i.initialData)),E=e._slicedToArray(m,2),C=E[0],L=E[1],M=r.useState(void 0),U=e._slicedToArray(M,2),k=U[0],w=U[1],F=r.useState(null==i?void 0:i.initialData),x=e._slicedToArray(F,2),B=x[0],H=x[1],P=r.useRef(new AbortController),Q=r.useRef(),z=null!==(a=null==i?void 0:i.keys)&&void 0!==a?a:[],G=function(){P.current.abort(),P.current=new AbortController},J=function(e){G(),h(!0),"init"===e&&(d.current=!0,_(!0)),"refetch"===e&&j(!0),u({signal:P.current.signal,keys:z}).then((function(r){var t,n=null!=i&&i.select?null==i?void 0:i.select(r):r;null==i||null===(t=i.onSuccess)||void 0===t||t.call(i,n),H(n),L(!0),w(void 0),I(!1),h(!1),"init"===e&&_(!1),"refetch"===e&&j(!1)})).catch((function(r){var n;if(s.current>0){s.current-=1;var l="function"==typeof(null==i?void 0:i.retryDelay)?null==i?void 0:i.retryDelay(s.current,r):null==i?void 0:i.retryDelay;return l?void setTimeout((function(){return J(e)}),l):J(e)}null==i||null===(n=i.onError)||void 0===n||n.call(i,r),H(void 0),L(!1),w(r),I(!0),h(!1),"init"===e&&_(!1),"refetch"===e&&j(!1),s.current=null!=i&&i.retry?t.getRetry(i.retry):0})).finally((function(){if(null!=i&&i.refetchInterval){var e=setInterval((function(){clearInterval(e),J("refetch")}),null==i?void 0:i.refetchInterval);Q.current=e}}))};l.useMount((function(){c&&J("init")})),n.useDidUpdate((function(){c&&J(d.current?"refetch":"init")}),[c].concat(e._toConsumableArray(z))),r.useEffect((function(){return function(){clearInterval(Q.current)}}),[c,null==i?void 0:i.refetchInterval,null==i?void 0:i.retry].concat(e._toConsumableArray(z)));var K=(null==i?void 0:i.placeholderData)instanceof Function?null==i?void 0:i.placeholderData():null==i?void 0:i.placeholderData;return{abort:G,data:null!=B?B:K,error:k,refetch:function(){return J("refetch")},isFetching:y,isLoading:D,isError:b,isSuccess:C,isRefetching:q}};
|
|
3
3
|
//# sourceMappingURL=useQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.js","sources":["../../../../src/hooks/useQuery/useQuery.ts"],"sourcesContent":["import type { DependencyList } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/* The use query return type */\nexport interface UseQueryOptions<QueryData, Data> {\n /* The enabled state of the query */\n enabled?: boolean;\n /* The initial data for the hook */\n initialData?: (() => Data) | Data;\n /* The depends for the hook */\n keys?: DependencyList;\n /* The placeholder data for the hook */\n placeholderData?: (() => Data) | Data;\n /* The refetch interval */\n refetchInterval?: number;\n /* The retry count of requests */\n retry?: boolean | number;\n /* The retry delay of requests */\n retryDelay?: ((retry: number, error: Error) => number) | number;\n /* The callback function to be invoked on error */\n onError?: (error: Error) => void;\n /* The callback function to be invoked on success */\n onSuccess?: (data: Data) => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n}\n\ninterface UseQueryCallbackParams {\n /* The depends for the hook */\n keys: DependencyList;\n /* The abort signal */\n signal: AbortSignal;\n}\n\n/* The use query return type */\nexport interface UseQueryReturn<Data> {\n /* The abort function */\n abort: AbortController['abort'];\n /* The state of the query */\n data?: Data;\n /* The success state of the query */\n error?: Error;\n /* The error state of the query */\n isError: boolean;\n /* The fetching state of the query */\n isFetching: boolean;\n /* The loading state of the query */\n isLoading: boolean;\n /* The refetching state of the query */\n isRefetching: boolean;\n /* The success state of the query */\n isSuccess: boolean;\n /* The refetch function */\n refetch: () => void;\n}\n\n/**\n * @name useQuery\n * @description - Hook that defines the logic when query data\n * @category Utilities\n *\n * @template Data The type of the data\n * @param {() => Promise<Data>} callback The callback function to be invoked\n * @param {DependencyList} [options.keys] The dependencies for the hook\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\n * @param {UseQueryOptionsSelect<Data>} [options.select] The select function to be invoked\n * @param {Data | (() => Data)} [options.initialData] The initial data for the hook\n * @param {Data | (() => Data)} [options.placeholderData] The placeholder data for the hook\n * @param {number} [options.refetchInterval] The refetch interval\n * @param {boolean | number} [options.retry] The retry count of requests\n * @returns {UseQueryReturn<Data>} An object with the state of the query\n *\n * @example\n * const { data, isFetching, isLoading, isError, isSuccess, error, refetch, isRefetching, abort, aborted } = useQuery(() => fetch('url'));\n */\nexport const useQuery = <QueryData, Data = QueryData>(\n callback: (params: UseQueryCallbackParams) => Promise<QueryData>,\n options?: UseQueryOptions<QueryData, Data>\n): UseQueryReturn<Data> => {\n const enabled = options?.enabled ?? true;\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const alreadyRequested = useRef(false);\n\n const [isFetching, setIsFetching] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [isRefetching, setIsRefetching] = useState(false);\n const [isSuccess, setIsSuccess] = useState(!!options?.initialData);\n\n const [error, setError] = useState<Error | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.initialData);\n\n const abortControllerRef = useRef<AbortController>(new AbortController());\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n\n const keys = options?.keys ?? [];\n\n const abort = () => {\n abortControllerRef.current.abort();\n abortControllerRef.current = new AbortController();\n };\n\n const request = (action: 'init' | 'refetch') => {\n abort();\n\n setIsFetching(true);\n if (action === 'init') {\n alreadyRequested.current = true;\n setIsLoading(true);\n }\n if (action === 'refetch') setIsRefetching(true);\n callback({ signal: abortControllerRef.current.signal, keys })\n .then((response) => {\n const data = options?.select ? options?.select(response) : response;\n options?.onSuccess?.(data as Data);\n setData(data as Data);\n setIsSuccess(true);\n setError(undefined);\n setIsError(false);\n setIsFetching(false);\n if (action === 'init') setIsLoading(false);\n if (action === 'refetch') setIsRefetching(false);\n })\n .catch((error: Error) => {\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n const retryDelay =\n typeof options?.retryDelay === 'function'\n ? options?.retryDelay(retryCountRef.current, error)\n : options?.retryDelay;\n\n if (retryDelay) {\n setTimeout(() => request(action), retryDelay);\n return;\n }\n\n return request(action);\n }\n options?.onError?.(error);\n setData(undefined);\n setIsSuccess(false);\n setError(error);\n setIsError(true);\n setIsFetching(false);\n if (action === 'init') setIsLoading(false);\n if (action === 'refetch') setIsRefetching(false);\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n })\n .finally(() => {\n if (options?.refetchInterval) {\n const interval = setInterval(() => {\n clearInterval(interval);\n request('refetch');\n }, options?.refetchInterval);\n intervalIdRef.current = interval;\n }\n });\n };\n\n useMount(() => {\n if (!enabled) return;\n request('init');\n });\n\n useDidUpdate(() => {\n if (!enabled) return;\n request(alreadyRequested.current ? 'refetch' : 'init');\n }, [enabled, ...keys]);\n\n useEffect(() => {\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, options?.refetchInterval, options?.retry, ...keys]);\n\n const refetch = () => request('refetch');\n\n const placeholderData =\n options?.placeholderData instanceof Function\n ? options?.placeholderData()\n : options?.placeholderData;\n\n return {\n abort,\n data: data ?? placeholderData,\n error,\n refetch,\n isFetching,\n isLoading,\n isError,\n isSuccess,\n isRefetching\n };\n};\n"],"names":["callback","options","_options$enabled","_options$keys","enabled","retryCountRef","useRef","retry","getRetry","alreadyRequested","_useState","useState","_useState2","_slicedToArray","isFetching","setIsFetching","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","isError","setIsError","_useState7","_useState8","isRefetching","setIsRefetching","_useState9","initialData","_useState10","isSuccess","setIsSuccess","_useState11","undefined","_useState12","error","setError","_useState13","_useState14","data","setData","abortControllerRef","AbortController","intervalIdRef","keys","abort","current","request","action","signal","then","response","_options$onSuccess","select","onSuccess","call","_options$onError","retryDelay","setTimeout","onError","refetchInterval","interval","setInterval","clearInterval","useMount","useDidUpdate","concat","_toConsumableArray","useEffect","placeholderData","Function","refetch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useQuery.js","sources":["../../../../src/hooks/useQuery/useQuery.ts"],"sourcesContent":["import type { DependencyList } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/* The use query return type */\nexport interface UseQueryOptions<QueryData, Data> {\n /* The enabled state of the query */\n enabled?: boolean;\n /* The initial data for the hook */\n initialData?: (() => Data) | Data;\n /* The depends for the hook */\n keys?: DependencyList;\n /* The placeholder data for the hook */\n placeholderData?: (() => Data) | Data;\n /* The refetch interval */\n refetchInterval?: number;\n /* The retry count of requests */\n retry?: boolean | number;\n /* The retry delay of requests */\n retryDelay?: ((retry: number, error: Error) => number) | number;\n /* The callback function to be invoked on error */\n onError?: (error: Error) => void;\n /* The callback function to be invoked on success */\n onSuccess?: (data: Data) => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n}\n\ninterface UseQueryCallbackParams {\n /* The depends for the hook */\n keys: DependencyList;\n /* The abort signal */\n signal: AbortSignal;\n}\n\n/* The use query return type */\nexport interface UseQueryReturn<Data> {\n /* The abort function */\n abort: AbortController['abort'];\n /* The state of the query */\n data?: Data;\n /* The success state of the query */\n error?: Error;\n /* The error state of the query */\n isError: boolean;\n /* The fetching state of the query */\n isFetching: boolean;\n /* The loading state of the query */\n isLoading: boolean;\n /* The refetching state of the query */\n isRefetching: boolean;\n /* The success state of the query */\n isSuccess: boolean;\n /* The refetch function */\n refetch: () => void;\n}\n\n/**\n * @name useQuery\n * @description - Hook that defines the logic when query data\n * @category Utilities\n *\n * @template Data The type of the data\n * @param {() => Promise<Data>} callback The callback function to be invoked\n * @param {DependencyList} [options.keys] The dependencies for the hook\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\n * @param {UseQueryOptionsSelect<Data>} [options.select] The select function to be invoked\n * @param {Data | (() => Data)} [options.initialData] The initial data for the hook\n * @param {Data | (() => Data)} [options.placeholderData] The placeholder data for the hook\n * @param {number} [options.refetchInterval] The refetch interval\n * @param {boolean | number} [options.retry] The retry count of requests\n * @returns {UseQueryReturn<Data>} An object with the state of the query\n *\n * @example\n * const { data, isFetching, isLoading, isError, isSuccess, error, refetch, isRefetching, abort, aborted } = useQuery(() => fetch('url'));\n */\nexport const useQuery = <QueryData, Data = QueryData>(\n callback: (params: UseQueryCallbackParams) => Promise<QueryData>,\n options?: UseQueryOptions<QueryData, Data>\n): UseQueryReturn<Data> => {\n const enabled = options?.enabled ?? true;\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const alreadyRequested = useRef(false);\n\n const [isFetching, setIsFetching] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [isRefetching, setIsRefetching] = useState(false);\n const [isSuccess, setIsSuccess] = useState(!!options?.initialData);\n\n const [error, setError] = useState<Error | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.initialData);\n\n const abortControllerRef = useRef<AbortController>(new AbortController());\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>();\n\n const keys = options?.keys ?? [];\n\n const abort = () => {\n abortControllerRef.current.abort();\n abortControllerRef.current = new AbortController();\n };\n\n const request = (action: 'init' | 'refetch') => {\n abort();\n\n setIsFetching(true);\n if (action === 'init') {\n alreadyRequested.current = true;\n setIsLoading(true);\n }\n if (action === 'refetch') setIsRefetching(true);\n callback({ signal: abortControllerRef.current.signal, keys })\n .then((response) => {\n const data = options?.select ? options?.select(response) : response;\n options?.onSuccess?.(data as Data);\n setData(data as Data);\n setIsSuccess(true);\n setError(undefined);\n setIsError(false);\n setIsFetching(false);\n if (action === 'init') setIsLoading(false);\n if (action === 'refetch') setIsRefetching(false);\n })\n .catch((error: Error) => {\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n const retryDelay =\n typeof options?.retryDelay === 'function'\n ? options?.retryDelay(retryCountRef.current, error)\n : options?.retryDelay;\n\n if (retryDelay) {\n setTimeout(() => request(action), retryDelay);\n return;\n }\n\n return request(action);\n }\n options?.onError?.(error);\n setData(undefined);\n setIsSuccess(false);\n setError(error);\n setIsError(true);\n setIsFetching(false);\n if (action === 'init') setIsLoading(false);\n if (action === 'refetch') setIsRefetching(false);\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n })\n .finally(() => {\n if (options?.refetchInterval) {\n const interval = setInterval(() => {\n clearInterval(interval);\n request('refetch');\n }, options?.refetchInterval);\n intervalIdRef.current = interval;\n }\n });\n };\n\n useMount(() => {\n if (!enabled) return;\n request('init');\n });\n\n useDidUpdate(() => {\n if (!enabled) return;\n request(alreadyRequested.current ? 'refetch' : 'init');\n }, [enabled, ...keys]);\n\n useEffect(() => {\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, options?.refetchInterval, options?.retry, ...keys]);\n\n const refetch = () => request('refetch');\n\n const placeholderData =\n options?.placeholderData instanceof Function\n ? options?.placeholderData()\n : options?.placeholderData;\n\n return {\n abort,\n data: data ?? placeholderData,\n error,\n refetch,\n isFetching,\n isLoading,\n isError,\n isSuccess,\n isRefetching\n };\n};\n"],"names":["callback","options","_options$enabled","_options$keys","enabled","retryCountRef","useRef","retry","getRetry","alreadyRequested","_useState","useState","_useState2","_slicedToArray","isFetching","setIsFetching","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","isError","setIsError","_useState7","_useState8","isRefetching","setIsRefetching","_useState9","initialData","_useState10","isSuccess","setIsSuccess","_useState11","undefined","_useState12","error","setError","_useState13","_useState14","data","setData","abortControllerRef","AbortController","intervalIdRef","keys","abort","current","request","action","signal","then","response","_options$onSuccess","select","onSuccess","call","_options$onError","retryDelay","setTimeout","onError","refetchInterval","interval","setInterval","clearInterval","useMount","useDidUpdate","concat","_toConsumableArray","useEffect","placeholderData","Function","refetch"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var r=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var r=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),e=require("react"),t=require("react-dom");exports.useQueue=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=e.useState(n),i=r._slicedToArray(u,2),o=i[0],a=i[1];return{add:function(e){return a((function(t){return[].concat(r._toConsumableArray(t),[e])}))},remove:function(){var e;return t.flushSync((function(){a((function(t){var n=r._toArray(t),u=n[0],i=n.slice(1);return e=u,i}))})),e},clear:function(){return a([])},first:o[0],last:o[o.length-1],size:o.length,queue:o}};
|
|
3
3
|
//# sourceMappingURL=useQueue.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-
|
|
1
|
+
/* @license @siberiacancode/reactuse v0.0.99 */
|
|
2
|
+
"use strict";var e=require("../../_rollupPluginBabelHelpers-C-GU1yny.js"),r=require("react");exports.useRaf=function(n,u){var t,i=r.useRef(null),l=r.useRef(0),a=r.useState(!1),c=e._slicedToArray(a,2),o=c[0],s=c[1],d=null===(t=null==u?void 0:u.enabled)||void 0===t||t,f=r.useRef(n);f.current=n;var m=function(e){var r=e-l.current;null!=u&&u.delay&&r<(null==u?void 0:u.delay)||(l.current=e,f.current({delta:r,timestamp:e})),i.current=window.requestAnimationFrame(m)},v=function(){o||(s(!0),l.current=0,i.current=window.requestAnimationFrame(m))};function w(){i.current&&(s(!1),window.cancelAnimationFrame(i.current),i.current=null)}return r.useEffect((function(){if(d)return v(),w}),[d,null==u?void 0:u.delay]),{active:o,pause:w,resume:v}};
|
|
3
3
|
//# sourceMappingURL=useRaf.js.map
|