@siberiacancode/reactuse 0.0.57 → 0.0.59
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-B7esNF5y.js → _rollupPluginBabelHelpers-DBlUbyen.js} +2 -2
- package/dist/cjs/_rollupPluginBabelHelpers-DBlUbyen.js.map +1 -0
- package/dist/cjs/hooks/index.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/useBattery/useBattery.js.map +1 -1
- package/dist/cjs/hooks/useBoolean/useBoolean.js +2 -2
- package/dist/cjs/hooks/useBreakpoints/constants/breakpoints.js +1 -1
- 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/useClipboard/useClipboard.js.map +1 -1
- package/dist/cjs/hooks/useCounter/useCounter.js +2 -2
- package/dist/cjs/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
- package/dist/cjs/hooks/useDebounceValue/useDebounceValue.js +2 -2
- package/dist/cjs/hooks/useDefault/useDefault.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/useDisclosure/useDisclosure.js.map +1 -1
- package/dist/cjs/hooks/useDocumentEvent/useDocumentEvent.js +1 -1
- package/dist/cjs/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
- package/dist/cjs/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
- package/dist/cjs/hooks/useEvent/useEvent.js +1 -1
- package/dist/cjs/hooks/useEventListener/useEventListener.js +1 -1
- package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js +2 -2
- package/dist/cjs/hooks/useEyeDropper/useEyeDropper.js.map +1 -1
- package/dist/cjs/hooks/useFavicon/useFavicon.js +2 -2
- package/dist/cjs/hooks/useField/useField.js +2 -2
- package/dist/cjs/hooks/useFileDialog/useFileDialog.js +2 -2
- package/dist/cjs/hooks/useFps/useFps.js +2 -2
- package/dist/cjs/hooks/useFps/useFps.js.map +1 -1
- package/dist/cjs/hooks/useFullscreen/useFullscreen.js +2 -2
- package/dist/cjs/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +3 -0
- package/dist/cjs/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js.map +1 -0
- package/dist/cjs/hooks/useGamepad/useGamepad.js +3 -0
- package/dist/cjs/hooks/useGamepad/useGamepad.js.map +1 -0
- 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/useIdle/useIdle.js.map +1 -1
- 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/useInterval/useInterval.js +2 -2
- package/dist/cjs/hooks/useInterval/useInterval.js.map +1 -1
- 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 +1 -1
- package/dist/cjs/hooks/useKeyboard/useKeyboard.js +1 -1
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js +2 -2
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
- 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/useMap/useMap.js.map +1 -1
- package/dist/cjs/hooks/useMeasure/useMeasure.js +2 -2
- package/dist/cjs/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/dist/cjs/hooks/useMemory/useMemory.js +2 -2
- package/dist/cjs/hooks/useMemory/useMemory.js.map +1 -1
- 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.js +1 -1
- package/dist/cjs/hooks/useNetwork/useNetwork.js +2 -2
- package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.js +3 -0
- package/dist/cjs/hooks/useOffsetPagination/useOffsetPagination.js.map +1 -0
- package/dist/cjs/hooks/useOnline/useOnline.js +1 -1
- package/dist/cjs/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
- package/dist/cjs/hooks/useOrientation/useOrientation.js +2 -2
- package/dist/cjs/hooks/usePageLeave/usePageLeave.js +2 -2
- package/dist/cjs/hooks/usePaint/helpers/Paint.js +2 -2
- package/dist/cjs/hooks/usePaint/helpers/Pointer.js +2 -2
- package/dist/cjs/hooks/usePaint/usePaint.js +2 -2
- package/dist/cjs/hooks/usePermission/usePermission.js +2 -2
- package/dist/cjs/hooks/usePermission/usePermission.js.map +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 +3 -0
- package/dist/cjs/hooks/useRaf/useRaf.js.map +1 -0
- package/dist/cjs/hooks/useRafValue/useRafValue.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 +2 -2
- package/dist/cjs/hooks/useResizeObserver/useResizeObserver.js +2 -2
- package/dist/cjs/hooks/useScript/useScript.js +2 -2
- package/dist/cjs/hooks/useScript/useScript.js.map +1 -1
- 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/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/useTextSelection/useTextSelection.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/useToggle/useToggle.js +2 -2
- package/dist/cjs/hooks/useUnmount/useUnmount.js +1 -1
- package/dist/cjs/hooks/useWebSocket/useWebSocket.js +2 -2
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.js +1 -1
- 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/{index-B5_TrIc_.js → index-wsmdu_Hg.js} +2 -2
- package/dist/cjs/{index-B5_TrIc_.js.map → index-wsmdu_Hg.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/getRetry.js +1 -1
- package/dist/cjs/utils/helpers/index.js +1 -1
- package/dist/cjs/utils/helpers/isClient.js +1 -1
- package/dist/cjs/utils/helpers/isPermissionAllowed.js +1 -1
- package/dist/cjs/utils/helpers/throttle.js +1 -1
- package/dist/cjs/utils/helpers/time/getDate.js +1 -1
- package/dist/cjs/utils/types/index.js +1 -1
- package/dist/esm/{_rollupPluginBabelHelpers-DmsB_Gfn.js → _rollupPluginBabelHelpers-DwIyQruH.js} +3 -3
- package/dist/esm/_rollupPluginBabelHelpers-DwIyQruH.js.map +1 -0
- package/dist/esm/hooks/index.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/useBattery/useBattery.js.map +1 -1
- package/dist/esm/hooks/useBoolean/useBoolean.js +2 -2
- package/dist/esm/hooks/useBreakpoints/constants/breakpoints.js +1 -1
- 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/useClipboard/useClipboard.js.map +1 -1
- package/dist/esm/hooks/useCounter/useCounter.js +2 -2
- package/dist/esm/hooks/useDebounceCallback/useDebounceCallback.js +1 -1
- package/dist/esm/hooks/useDebounceValue/useDebounceValue.js +2 -2
- package/dist/esm/hooks/useDefault/useDefault.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/useDisclosure/useDisclosure.js.map +1 -1
- package/dist/esm/hooks/useDocumentEvent/useDocumentEvent.js +1 -1
- package/dist/esm/hooks/useDocumentTitle/useDocumentTitle.js +2 -2
- package/dist/esm/hooks/useDocumentVisibility/useDocumentVisibility.js +1 -1
- package/dist/esm/hooks/useEvent/useEvent.js +1 -1
- package/dist/esm/hooks/useEventListener/useEventListener.js +1 -1
- package/dist/esm/hooks/useEyeDropper/useEyeDropper.js +2 -2
- package/dist/esm/hooks/useEyeDropper/useEyeDropper.js.map +1 -1
- package/dist/esm/hooks/useFavicon/useFavicon.js +2 -2
- package/dist/esm/hooks/useField/useField.js +2 -2
- package/dist/esm/hooks/useFileDialog/useFileDialog.js +2 -2
- package/dist/esm/hooks/useFps/useFps.js +2 -2
- package/dist/esm/hooks/useFps/useFps.js.map +1 -1
- package/dist/esm/hooks/useFullscreen/useFullscreen.js +2 -2
- package/dist/esm/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js +3 -0
- package/dist/esm/hooks/useGamepad/helpers/mapGamepadToXbox360Controller.js.map +1 -0
- package/dist/esm/hooks/useGamepad/useGamepad.js +3 -0
- package/dist/esm/hooks/useGamepad/useGamepad.js.map +1 -0
- 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/useIdle/useIdle.js.map +1 -1
- 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/useInterval/useInterval.js +2 -2
- package/dist/esm/hooks/useInterval/useInterval.js.map +1 -1
- 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 +1 -1
- package/dist/esm/hooks/useKeyboard/useKeyboard.js +1 -1
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.js +2 -2
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.js.map +1 -1
- 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/useMap/useMap.js.map +1 -1
- 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/useMemory/useMemory.js.map +1 -1
- 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.js +1 -1
- package/dist/esm/hooks/useNetwork/useNetwork.js +2 -2
- package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.js +3 -0
- package/dist/esm/hooks/useOffsetPagination/useOffsetPagination.js.map +1 -0
- package/dist/esm/hooks/useOnline/useOnline.js +1 -1
- package/dist/esm/hooks/useOperatingSystem/useOperatingSystem.js +1 -1
- package/dist/esm/hooks/useOrientation/useOrientation.js +2 -2
- package/dist/esm/hooks/usePageLeave/usePageLeave.js +2 -2
- package/dist/esm/hooks/usePaint/helpers/Paint.js +2 -2
- package/dist/esm/hooks/usePaint/helpers/Paint.js.map +1 -1
- package/dist/esm/hooks/usePaint/helpers/Pointer.js +2 -2
- package/dist/esm/hooks/usePaint/usePaint.js +2 -2
- package/dist/esm/hooks/usePermission/usePermission.js +2 -2
- package/dist/esm/hooks/usePermission/usePermission.js.map +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 +3 -0
- package/dist/esm/hooks/useRaf/useRaf.js.map +1 -0
- package/dist/esm/hooks/useRafValue/useRafValue.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 +2 -2
- package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +2 -2
- package/dist/esm/hooks/useScript/useScript.js +2 -2
- package/dist/esm/hooks/useScript/useScript.js.map +1 -1
- 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/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/useTextSelection/useTextSelection.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/useToggle/useToggle.js +2 -2
- package/dist/esm/hooks/useUnmount/useUnmount.js +1 -1
- package/dist/esm/hooks/useWebSocket/useWebSocket.js +2 -2
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.js +1 -1
- 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/{index-CYU_BSAR.js → index-BNmjOI1h.js} +2 -2
- package/dist/esm/{index-CYU_BSAR.js.map → index-BNmjOI1h.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/getRetry.js +1 -1
- package/dist/esm/utils/helpers/index.js +1 -1
- package/dist/esm/utils/helpers/isClient.js +1 -1
- package/dist/esm/utils/helpers/isPermissionAllowed.js +1 -1
- package/dist/esm/utils/helpers/throttle.js +1 -1
- package/dist/esm/utils/helpers/time/getDate.js +1 -1
- package/dist/esm/utils/types/index.js +1 -1
- package/dist/index.d.ts +126 -14
- package/package.json +1 -1
- package/dist/cjs/_rollupPluginBabelHelpers-B7esNF5y.js.map +0 -1
- package/dist/cjs/hooks/useRafCallback/useRafCallback.js +0 -3
- package/dist/cjs/hooks/useRafCallback/useRafCallback.js.map +0 -1
- package/dist/esm/_rollupPluginBabelHelpers-DmsB_Gfn.js.map +0 -1
- package/dist/esm/hooks/useRafCallback/useRafCallback.js +0 -3
- package/dist/esm/hooks/useRafCallback/useRafCallback.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ type UseBooleanReturn = [
|
|
|
74
74
|
*/
|
|
75
75
|
declare const useBoolean: (initialValue?: boolean) => UseBooleanReturn;
|
|
76
76
|
|
|
77
|
+
/** The breakpoints type */
|
|
77
78
|
type Breakpoints<Breakpoint extends string = string> = Record<Breakpoint, number>;
|
|
78
79
|
/** The use breakpoints strategy */
|
|
79
80
|
type UseBreakpointsStrategy = 'mobile-first' | 'desktop-first';
|
|
@@ -298,14 +299,22 @@ declare const useDefault: <Value>(initialValue: Value | (() => Value), defaultVa
|
|
|
298
299
|
*/
|
|
299
300
|
declare const useDidUpdate: (effect: EffectCallback, deps?: DependencyList) => void;
|
|
300
301
|
|
|
302
|
+
/** The use disclosure options type */
|
|
301
303
|
interface UseDisclosureOptions {
|
|
304
|
+
/** The callback function to be invoked on open */
|
|
302
305
|
onOpen?: () => void;
|
|
306
|
+
/** The callback function to be invoked on close */
|
|
303
307
|
onClose?: () => void;
|
|
304
308
|
}
|
|
309
|
+
/** The use disclosure return type */
|
|
305
310
|
interface UseDisclosureReturn {
|
|
311
|
+
/** The opened value */
|
|
306
312
|
opened: boolean;
|
|
313
|
+
/** Function to open the modal */
|
|
307
314
|
open: () => void;
|
|
315
|
+
/** Function to close the modal */
|
|
308
316
|
close: () => void;
|
|
317
|
+
/** Function to toggle the modal */
|
|
309
318
|
toggle: () => void;
|
|
310
319
|
}
|
|
311
320
|
/**
|
|
@@ -411,8 +420,11 @@ declare global {
|
|
|
411
420
|
}
|
|
412
421
|
/** The color selection return type */
|
|
413
422
|
interface UseEyeDropperReturn {
|
|
423
|
+
/** The eye dropper supported status */
|
|
414
424
|
supported: boolean;
|
|
425
|
+
/** The eye dropper value */
|
|
415
426
|
value?: string;
|
|
427
|
+
/** The eye dropper open method */
|
|
416
428
|
open: (colorSelectionOptions?: ColorSelectionOptions) => Promise<ColorSelectionResult>;
|
|
417
429
|
}
|
|
418
430
|
/**
|
|
@@ -650,6 +662,27 @@ type UseFullScreen = {
|
|
|
650
662
|
*/
|
|
651
663
|
declare const useFullscreen: UseFullScreen;
|
|
652
664
|
|
|
665
|
+
declare global {
|
|
666
|
+
interface Gamepad {
|
|
667
|
+
hapticActuators?: GamepadHapticActuator[];
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
* @name useGamepad
|
|
672
|
+
* @description - Hook for getting information about gamepad
|
|
673
|
+
* @category Browser
|
|
674
|
+
*
|
|
675
|
+
* @returns {UseGamepadStateReturn} An object containing the gamepad information
|
|
676
|
+
*
|
|
677
|
+
* @example
|
|
678
|
+
* const { supported, gamepads, active } = useGamepad();
|
|
679
|
+
*/
|
|
680
|
+
declare const useGamepad: () => {
|
|
681
|
+
active: boolean;
|
|
682
|
+
supported: boolean;
|
|
683
|
+
gamepads: Gamepad[];
|
|
684
|
+
};
|
|
685
|
+
|
|
653
686
|
/** The use geolocation return type */
|
|
654
687
|
interface UseGeolocationReturn {
|
|
655
688
|
/** The loading state */
|
|
@@ -831,6 +864,10 @@ interface UseQueryOptions<QueryData, Data> {
|
|
|
831
864
|
refetchInterval?: number;
|
|
832
865
|
enabled?: boolean;
|
|
833
866
|
}
|
|
867
|
+
interface UseQueryCallbackParams {
|
|
868
|
+
signal: AbortSignal;
|
|
869
|
+
keys: DependencyList;
|
|
870
|
+
}
|
|
834
871
|
interface UseQueryReturn<Data> {
|
|
835
872
|
data?: Data;
|
|
836
873
|
isLoading: boolean;
|
|
@@ -839,6 +876,8 @@ interface UseQueryReturn<Data> {
|
|
|
839
876
|
error?: Error;
|
|
840
877
|
refetch: () => void;
|
|
841
878
|
isRefetching: boolean;
|
|
879
|
+
abort: AbortController['abort'];
|
|
880
|
+
isAborted: boolean;
|
|
842
881
|
}
|
|
843
882
|
/**
|
|
844
883
|
* @name useQuery
|
|
@@ -860,7 +899,7 @@ interface UseQueryReturn<Data> {
|
|
|
860
899
|
* @example
|
|
861
900
|
* const { data, isLoading, isError, isSuccess, error, refetch, isRefetching } = useQuery(() => fetch('url'));
|
|
862
901
|
*/
|
|
863
|
-
declare const useQuery: <QueryData, Data = QueryData>(callback: () => Promise<QueryData>, options?: UseQueryOptions<QueryData, Data>) => UseQueryReturn<Data>;
|
|
902
|
+
declare const useQuery: <QueryData, Data = QueryData>(callback: (params: UseQueryCallbackParams) => Promise<QueryData>, options?: UseQueryOptions<QueryData, Data>) => UseQueryReturn<Data>;
|
|
864
903
|
|
|
865
904
|
/** The use image options */
|
|
866
905
|
interface UseImageOptions {
|
|
@@ -1003,7 +1042,7 @@ interface UseIntervalOptions {
|
|
|
1003
1042
|
/** The use interval return type */
|
|
1004
1043
|
interface UseIntervalReturn {
|
|
1005
1044
|
/** Is the interval active */
|
|
1006
|
-
|
|
1045
|
+
active: boolean;
|
|
1007
1046
|
/** Pause the interval */
|
|
1008
1047
|
pause: () => void;
|
|
1009
1048
|
/** Resume the interval */
|
|
@@ -1027,7 +1066,7 @@ type UseInterval = {
|
|
|
1027
1066
|
* @returns {UseIntervalReturn}
|
|
1028
1067
|
*
|
|
1029
1068
|
* @example
|
|
1030
|
-
* const {
|
|
1069
|
+
* const { active, pause, resume } = useInterval(() => console.log('inside interval'), 2500);
|
|
1031
1070
|
*
|
|
1032
1071
|
* @overload
|
|
1033
1072
|
* @param {() => void} callback Any callback function
|
|
@@ -1035,7 +1074,7 @@ type UseInterval = {
|
|
|
1035
1074
|
* @param {boolean} [options.immediate=true] Start the interval immediately
|
|
1036
1075
|
*
|
|
1037
1076
|
* @example
|
|
1038
|
-
* const {
|
|
1077
|
+
* const { active, pause, resume } = useInterval(() => console.log('inside interval'), { interval: 2500 });
|
|
1039
1078
|
*/
|
|
1040
1079
|
declare const useInterval: UseInterval;
|
|
1041
1080
|
|
|
@@ -1351,8 +1390,11 @@ declare global {
|
|
|
1351
1390
|
};
|
|
1352
1391
|
}
|
|
1353
1392
|
}
|
|
1393
|
+
/** The use memory return type */
|
|
1354
1394
|
interface UseMemoryReturn {
|
|
1395
|
+
/** The memory supported status */
|
|
1355
1396
|
supported: boolean;
|
|
1397
|
+
/** The current memory usage */
|
|
1356
1398
|
value: Performance['memory'];
|
|
1357
1399
|
}
|
|
1358
1400
|
/**
|
|
@@ -1493,6 +1535,75 @@ interface UseNetworkReturn {
|
|
|
1493
1535
|
*/
|
|
1494
1536
|
declare const useNetwork: () => UseNetworkReturn;
|
|
1495
1537
|
|
|
1538
|
+
/** The use offset pagination return type */
|
|
1539
|
+
interface UseOffsetPaginationOptions {
|
|
1540
|
+
/** The total number of items */
|
|
1541
|
+
total?: number;
|
|
1542
|
+
/** The number of items per page */
|
|
1543
|
+
pageSize?: number;
|
|
1544
|
+
/** The initial page number */
|
|
1545
|
+
initialPage?: number;
|
|
1546
|
+
/** The callback function to be invoked when page changes */
|
|
1547
|
+
onPageChange?: ({ page, pageSize }: {
|
|
1548
|
+
page: number;
|
|
1549
|
+
pageSize: number;
|
|
1550
|
+
}) => void;
|
|
1551
|
+
/** The callback function to be invoked when page size changes */
|
|
1552
|
+
onPageSizeChange?: ({ page, pageSize }: {
|
|
1553
|
+
page: number;
|
|
1554
|
+
pageSize: number;
|
|
1555
|
+
}) => void;
|
|
1556
|
+
/** The callback function to be invoked when page count changes */
|
|
1557
|
+
onPageCountChange?: ({ page, pageSize }: {
|
|
1558
|
+
page: number;
|
|
1559
|
+
pageSize: number;
|
|
1560
|
+
}) => void;
|
|
1561
|
+
}
|
|
1562
|
+
/** The use offset pagination return type */
|
|
1563
|
+
interface UseOffsetPaginationReturn {
|
|
1564
|
+
/** The current page number */
|
|
1565
|
+
page: number;
|
|
1566
|
+
/** The number of items per page */
|
|
1567
|
+
currentPageSize: number;
|
|
1568
|
+
/** The total number of pages */
|
|
1569
|
+
pageCount: number;
|
|
1570
|
+
/** Whether the current page is the first page */
|
|
1571
|
+
isFirstPage: boolean;
|
|
1572
|
+
/** Whether the current page is the last page */
|
|
1573
|
+
isLastPage: boolean;
|
|
1574
|
+
/** The callback function to go to the previous page */
|
|
1575
|
+
prev: () => void;
|
|
1576
|
+
/** The callback function to go to the next page */
|
|
1577
|
+
next: () => void;
|
|
1578
|
+
/** The callback function to set the current page */
|
|
1579
|
+
set: (page: number) => void;
|
|
1580
|
+
}
|
|
1581
|
+
/**
|
|
1582
|
+
* @name useOffsetPagination
|
|
1583
|
+
* @description - Hook that defines the logic when pagination
|
|
1584
|
+
* @category Utilities
|
|
1585
|
+
*
|
|
1586
|
+
* @param {UseOffsetPaginationOptions} options - The options for the hook
|
|
1587
|
+
* @param {number} [options.total] - The total number of items
|
|
1588
|
+
* @param {number} [options.pageSize] - The number of items per page
|
|
1589
|
+
* @param {number} [options.initialPage] - The current page
|
|
1590
|
+
* @param {({ page, pageSize }: { page: number; pageSize: number }) => void} [options.onPageChange] - The callback function to be invoked when page changes
|
|
1591
|
+
* @param {({ page, pageSize }: { page: number; pageSize: number }) => void} [options.onPageCountChange] - The callback function to be invoked when page count changes
|
|
1592
|
+
* @param {({ page, pageSize }: { page: number; pageSize: number }) => void} [options.onPageSizeChange] - The callback function to be invoked when page size changes
|
|
1593
|
+
* @returns {UseOffsetPaginationReturn} - The state of the hook
|
|
1594
|
+
*
|
|
1595
|
+
* @example
|
|
1596
|
+
* const { currentPage, currentPageSize, pageCount, isFirstPage, isLastPage, prev, next } = useOffsetPagination({
|
|
1597
|
+
* total: 100,
|
|
1598
|
+
* pageSize: 10,
|
|
1599
|
+
* page: 1,
|
|
1600
|
+
* onPageChange: (page) => {},
|
|
1601
|
+
* onPageCountChange: (pageCount) => {},
|
|
1602
|
+
* onPageSizeChange: (pageSize) => {}
|
|
1603
|
+
* });
|
|
1604
|
+
*/
|
|
1605
|
+
declare const useOffsetPagination: ({ total, pageSize, initialPage, onPageChange, onPageCountChange, onPageSizeChange }?: UseOffsetPaginationOptions) => UseOffsetPaginationReturn;
|
|
1606
|
+
|
|
1496
1607
|
/**
|
|
1497
1608
|
* @name useOnline
|
|
1498
1609
|
* @description - Hook that manages if the user is online
|
|
@@ -1652,6 +1763,7 @@ type UsePaint = {
|
|
|
1652
1763
|
*/
|
|
1653
1764
|
declare const usePaint: UsePaint;
|
|
1654
1765
|
|
|
1766
|
+
/** The permission name */
|
|
1655
1767
|
type UsePermissionName = PermissionName | 'accelerometer' | 'accessibility-events' | 'ambient-light-sensor' | 'background-sync' | 'camera' | 'clipboard-read' | 'clipboard-write' | 'gyroscope' | 'magnetometer' | 'microphone' | 'notifications' | 'payment-handler' | 'persistent-storage' | 'push' | 'speaker';
|
|
1656
1768
|
/**
|
|
1657
1769
|
* @name usePermission
|
|
@@ -1778,41 +1890,41 @@ interface UseQueueReturn<Value> {
|
|
|
1778
1890
|
*/
|
|
1779
1891
|
declare const useQueue: <Value>(initialValue?: Value[]) => UseQueueReturn<Value>;
|
|
1780
1892
|
|
|
1781
|
-
interface
|
|
1893
|
+
interface UseRafParams {
|
|
1782
1894
|
/** The delta between each frame in milliseconds */
|
|
1783
1895
|
delta: number;
|
|
1784
1896
|
/** The timestamp of the current frame in milliseconds */
|
|
1785
1897
|
timestamp: DOMHighResTimeStamp;
|
|
1786
1898
|
}
|
|
1787
|
-
type
|
|
1788
|
-
interface
|
|
1899
|
+
type UseRafCallback = (params: UseRafParams) => void;
|
|
1900
|
+
interface UseRafOptions {
|
|
1789
1901
|
/** The delay between each frame in milliseconds */
|
|
1790
1902
|
delay?: number;
|
|
1791
1903
|
/** Whether the callback should be enabled */
|
|
1792
1904
|
enabled?: boolean;
|
|
1793
1905
|
}
|
|
1794
|
-
interface
|
|
1906
|
+
interface UseRafReturn {
|
|
1795
1907
|
/** Whether the callback is active */
|
|
1796
|
-
|
|
1908
|
+
active: boolean;
|
|
1797
1909
|
/** Function to pause the callback */
|
|
1798
1910
|
pause: () => void;
|
|
1799
1911
|
/** Function to resume the callback */
|
|
1800
1912
|
resume: () => void;
|
|
1801
1913
|
}
|
|
1802
1914
|
/**
|
|
1803
|
-
* @name
|
|
1915
|
+
* @name useRaf
|
|
1804
1916
|
* @description - Hook that defines the logic for raf callback
|
|
1805
1917
|
* @category Utilities
|
|
1806
1918
|
*
|
|
1807
1919
|
* @param {UseRafCallback} callback The callback to execute
|
|
1808
1920
|
* @param {number} [options.delay] The delay between each frame in milliseconds
|
|
1809
|
-
* @param {boolean} [options.enabled=
|
|
1921
|
+
* @param {boolean} [options.enabled=true] Whether the callback should be enabled
|
|
1810
1922
|
* @returns {UseRafCallbackReturn} An object of raf callback functions
|
|
1811
1923
|
*
|
|
1812
1924
|
* @example
|
|
1813
|
-
*
|
|
1925
|
+
* useRaf(() => console.log('callback'));
|
|
1814
1926
|
*/
|
|
1815
|
-
declare const
|
|
1927
|
+
declare const useRaf: (callback: UseRafCallback, options?: UseRafOptions) => UseRafReturn;
|
|
1816
1928
|
|
|
1817
1929
|
/**
|
|
1818
1930
|
* @name useRafValue
|
|
@@ -2376,4 +2488,4 @@ declare const getDate: (now?: Date) => {
|
|
|
2376
2488
|
timestamp: number;
|
|
2377
2489
|
};
|
|
2378
2490
|
|
|
2379
|
-
export { debounce, getDate, getRetry, isClient, isPermissionAllowed, throttle, useAsync, useBattery, useBoolean, useBreakpoints, useBrowserLanguage, useClickOutside, useClipboard, useCounter, useDebounceCallback, useDebounceValue, useDefault, useDidUpdate, useDisclosure, useDocumentEvent, useDocumentTitle, useDocumentVisibility, useEvent, useEventListener, useEyeDropper, useFavicon, useField, useFileDialog, useFps, useFullscreen, useGeolocation, useHash, useHotkeys, useHover, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useInterval, useIsFirstRender, useIsomorphicLayoutEffect, useKeyPress, useKeyPressEvent, useKeyboard, useKeysPressed, useList, useLocalStorage, useLogger, useLongPress, useMap, useMeasure, useMediaQuery, useMemory, useMount, useMouse, useMutation, useNetwork, useOnline, useOperatingSystem, useOrientation, usePageLeave, usePaint, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useQuery, useQueue,
|
|
2491
|
+
export { debounce, getDate, getRetry, isClient, isPermissionAllowed, throttle, useAsync, useBattery, useBoolean, useBreakpoints, useBrowserLanguage, useClickOutside, useClipboard, useCounter, useDebounceCallback, useDebounceValue, useDefault, useDidUpdate, useDisclosure, useDocumentEvent, useDocumentTitle, useDocumentVisibility, useEvent, useEventListener, useEyeDropper, useFavicon, useField, useFileDialog, useFps, useFullscreen, useGamepad, useGeolocation, useHash, useHotkeys, useHover, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useInterval, useIsFirstRender, useIsomorphicLayoutEffect, useKeyPress, useKeyPressEvent, useKeyboard, useKeysPressed, useList, useLocalStorage, useLogger, useLongPress, useMap, useMeasure, useMediaQuery, useMemory, useMount, useMouse, useMutation, useNetwork, useOffsetPagination, useOnline, useOperatingSystem, useOrientation, usePageLeave, usePaint, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useQuery, useQueue, useRaf, useRafValue, useRenderCount, useRenderInfo, useRerender, useResizeObserver, useScript, useSessionStorage, useSet, useShare, useStep, useStopwatch, useStorage, useTextSelection, useTime, useTimeout, useToggle, useUnmount, useWebSocket, useWindowEvent, useWindowSize, useWizard };
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers-B7esNF5y.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.57 */
|
|
2
|
-
"use strict";var e=require("../../_rollupPluginBabelHelpers-B7esNF5y.js"),r=require("react");exports.useRafCallback=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=function e(r){var t=r-l.current;null!=u&&u.delay&&t<(null==u?void 0:u.delay)||(l.current=r,n({delta:t,timestamp:r})),i.current=window.requestAnimationFrame(e)},m=function(){o||(s(!0),l.current=0,i.current=window.requestAnimationFrame(f))};function v(){i.current&&(s(!1),window.cancelAnimationFrame(i.current),i.current=null)}return r.useEffect((function(){if(d)return m(),v}),[d]),{isActive:o,pause:v,resume:m}};
|
|
3
|
-
//# sourceMappingURL=useRafCallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRafCallback.js","sources":["../../../../src/hooks/useRafCallback/useRafCallback.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/* The use raf callback params type */\nexport interface UseRafCallbackParams {\n /** The delta between each frame in milliseconds */\n delta: number;\n /** The timestamp of the current frame in milliseconds */\n timestamp: DOMHighResTimeStamp;\n}\n\n/* The use raf callback type */\nexport type UseRafCallbackCallback = (params: UseRafCallbackParams) => void;\n\n/* The use raf callback options type */\nexport interface UseRafCallbackOptions {\n /** The delay between each frame in milliseconds */\n delay?: number;\n /** Whether the callback should be enabled */\n enabled?: boolean;\n}\n\n/* The use raf callback return type */\nexport interface UseRafCallbackReturn {\n /** Whether the callback is active */\n isActive: boolean;\n /** Function to pause the callback */\n pause: () => void;\n /** Function to resume the callback */\n resume: () => void;\n}\n\n/**\n * @name useRafCallback\n * @description - Hook that defines the logic for raf callback\n * @category Utilities\n *\n * @param {UseRafCallback} callback The callback to execute\n * @param {number} [options.delay] The delay between each frame in milliseconds\n * @param {boolean} [options.enabled=false] Whether the callback should be enabled\n * @returns {UseRafCallbackReturn} An object of raf callback functions\n *\n * @example\n * useRafCallback(() => console.log('callback'));\n */\nexport const useRafCallback = (\n callback: UseRafCallbackCallback,\n options?: UseRafCallbackOptions\n): UseRafCallbackReturn => {\n const rafIdRef = useRef<number | null>(null);\n const previousFrameTimestampRef = useRef(0);\n const [isActive, setIsActive] = useState(false);\n const enabled = options?.enabled ?? false;\n\n const loop = (timestamp: DOMHighResTimeStamp) => {\n const delta = timestamp - previousFrameTimestampRef.current;\n\n if (options?.delay && delta < options?.delay) {\n rafIdRef.current = window.requestAnimationFrame(loop);\n return;\n }\n\n previousFrameTimestampRef.current = timestamp;\n callback({ delta, timestamp });\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n const resume = () => {\n if (isActive) return;\n setIsActive(true);\n previousFrameTimestampRef.current = 0;\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n function pause() {\n if (!rafIdRef.current) return;\n\n setIsActive(false);\n window.cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = null;\n }\n\n useEffect(() => {\n if (!enabled) return;\n resume();\n\n return pause;\n }, [enabled]);\n\n return {\n isActive,\n pause,\n resume\n };\n};\n"],"names":["callback","options","_options$enabled","rafIdRef","useRef","previousFrameTimestampRef","_useState","useState","_useState2","_slicedToArray","isActive","setIsActive","enabled","loop","timestamp","delta","current","delay","window","requestAnimationFrame","resume","pause","cancelAnimationFrame","useEffect"],"mappings":";oHA4C8B,SAC5BA,EACAC,GACyB,IAAAC,EACnBC,EAAWC,SAAsB,MACjCC,EAA4BD,SAAO,GACzCE,EAAgCC,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,eAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAA0BV,QAAnBA,EAAGD,aAAO,EAAPA,EAASW,eAAOV,IAAAA,GAAAA,EAE1BW,EAAO,SAAPA,EAAQC,GACZ,IAAMC,EAAQD,EAAYT,EAA0BW,QAEhDf,SAAAA,EAASgB,OAASF,GAAQd,eAAAA,EAASgB,SAKvCZ,EAA0BW,QAAUF,EACpCd,EAAS,CAAEe,MAAAA,EAAOD,UAAAA,KALhBX,EAASa,QAAUE,OAAOC,sBAAsBN,IAS9CO,EAAS,WACTV,IACJC,GAAY,GACZN,EAA0BW,QAAU,EACpCb,EAASa,QAAUE,OAAOC,sBAAsBN,KAGlD,SAASQ,IACFlB,EAASa,UAEdL,GAAY,GACZO,OAAOI,qBAAqBnB,EAASa,SACrCb,EAASa,QAAU,KACrB,CASA,OAPAO,EAAAA,WAAU,WACR,GAAKX,EAGL,OAFAQ,IAEOC,CACT,GAAG,CAACT,IAEG,CACLF,SAAAA,EACAW,MAAAA,EACAD,OAAAA,EAEJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers-DmsB_Gfn.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/* @license @siberiacancode/reactuse v0.0.57 */
|
|
2
|
-
import{_ as n}from"../../_rollupPluginBabelHelpers-DmsB_Gfn.js";import{useRef as r,useState as e,useEffect as t}from"react";var u=function(u,i){var l,o=r(null),a=r(0),c=e(!1),m=n(c,2),d=m[0],s=m[1],f=null!==(l=null==i?void 0:i.enabled)&&void 0!==l&&l,p=function n(r){var e=r-a.current;null!=i&&i.delay&&e<(null==i?void 0:i.delay)||(a.current=r,u({delta:e,timestamp:r})),o.current=window.requestAnimationFrame(n)},v=function(){d||(s(!0),a.current=0,o.current=window.requestAnimationFrame(p))};function w(){o.current&&(s(!1),window.cancelAnimationFrame(o.current),o.current=null)}return t((function(){if(f)return v(),w}),[f]),{isActive:d,pause:w,resume:v}};export{u as useRafCallback};
|
|
3
|
-
//# sourceMappingURL=useRafCallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRafCallback.js","sources":["../../../../src/hooks/useRafCallback/useRafCallback.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/* The use raf callback params type */\nexport interface UseRafCallbackParams {\n /** The delta between each frame in milliseconds */\n delta: number;\n /** The timestamp of the current frame in milliseconds */\n timestamp: DOMHighResTimeStamp;\n}\n\n/* The use raf callback type */\nexport type UseRafCallbackCallback = (params: UseRafCallbackParams) => void;\n\n/* The use raf callback options type */\nexport interface UseRafCallbackOptions {\n /** The delay between each frame in milliseconds */\n delay?: number;\n /** Whether the callback should be enabled */\n enabled?: boolean;\n}\n\n/* The use raf callback return type */\nexport interface UseRafCallbackReturn {\n /** Whether the callback is active */\n isActive: boolean;\n /** Function to pause the callback */\n pause: () => void;\n /** Function to resume the callback */\n resume: () => void;\n}\n\n/**\n * @name useRafCallback\n * @description - Hook that defines the logic for raf callback\n * @category Utilities\n *\n * @param {UseRafCallback} callback The callback to execute\n * @param {number} [options.delay] The delay between each frame in milliseconds\n * @param {boolean} [options.enabled=false] Whether the callback should be enabled\n * @returns {UseRafCallbackReturn} An object of raf callback functions\n *\n * @example\n * useRafCallback(() => console.log('callback'));\n */\nexport const useRafCallback = (\n callback: UseRafCallbackCallback,\n options?: UseRafCallbackOptions\n): UseRafCallbackReturn => {\n const rafIdRef = useRef<number | null>(null);\n const previousFrameTimestampRef = useRef(0);\n const [isActive, setIsActive] = useState(false);\n const enabled = options?.enabled ?? false;\n\n const loop = (timestamp: DOMHighResTimeStamp) => {\n const delta = timestamp - previousFrameTimestampRef.current;\n\n if (options?.delay && delta < options?.delay) {\n rafIdRef.current = window.requestAnimationFrame(loop);\n return;\n }\n\n previousFrameTimestampRef.current = timestamp;\n callback({ delta, timestamp });\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n const resume = () => {\n if (isActive) return;\n setIsActive(true);\n previousFrameTimestampRef.current = 0;\n rafIdRef.current = window.requestAnimationFrame(loop);\n };\n\n function pause() {\n if (!rafIdRef.current) return;\n\n setIsActive(false);\n window.cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = null;\n }\n\n useEffect(() => {\n if (!enabled) return;\n resume();\n\n return pause;\n }, [enabled]);\n\n return {\n isActive,\n pause,\n resume\n };\n};\n"],"names":["useRafCallback","callback","options","_options$enabled","rafIdRef","useRef","previousFrameTimestampRef","_useState","useState","_useState2","_slicedToArray","isActive","setIsActive","enabled","loop","timestamp","delta","current","delay","window","requestAnimationFrame","resume","pause","cancelAnimationFrame","useEffect"],"mappings":";4HA4CO,IAAMA,EAAiB,SAC5BC,EACAC,GACyB,IAAAC,EACnBC,EAAWC,EAAsB,MACjCC,EAA4BD,EAAO,GACzCE,EAAgCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GACtBI,EAA0BV,QAAnBA,EAAGD,aAAO,EAAPA,EAASW,eAAOV,IAAAA,GAAAA,EAE1BW,EAAO,SAAPA,EAAQC,GACZ,IAAMC,EAAQD,EAAYT,EAA0BW,QAEhDf,SAAAA,EAASgB,OAASF,GAAQd,eAAAA,EAASgB,SAKvCZ,EAA0BW,QAAUF,EACpCd,EAAS,CAAEe,MAAAA,EAAOD,UAAAA,KALhBX,EAASa,QAAUE,OAAOC,sBAAsBN,IAS9CO,EAAS,WACTV,IACJC,GAAY,GACZN,EAA0BW,QAAU,EACpCb,EAASa,QAAUE,OAAOC,sBAAsBN,KAGlD,SAASQ,IACFlB,EAASa,UAEdL,GAAY,GACZO,OAAOI,qBAAqBnB,EAASa,SACrCb,EAASa,QAAU,KACrB,CASA,OAPAO,GAAU,WACR,GAAKX,EAGL,OAFAQ,IAEOC,CACT,GAAG,CAACT,IAEG,CACLF,SAAAA,EACAW,MAAAA,EACAD,OAAAA,EAEJ"}
|