@siberiacancode/reactuse 0.2.22 → 0.2.24
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/hooks/useAudio/useAudio.cjs.map +1 -1
- package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs +2 -0
- package/dist/cjs/hooks/useAutoScroll/useAutoScroll.cjs.map +1 -0
- package/dist/cjs/hooks/useBattery/useBattery.cjs +1 -1
- package/dist/cjs/hooks/useBattery/useBattery.cjs.map +1 -1
- package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs +2 -0
- package/dist/cjs/hooks/useBroadcastChannel/useBroadcastChannel.cjs.map +1 -0
- package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs +1 -1
- package/dist/cjs/hooks/useDisplayMedia/useDisplayMedia.cjs.map +1 -1
- package/dist/cjs/hooks/useEvent/useEvent.cjs +1 -1
- package/dist/cjs/hooks/useEvent/useEvent.cjs.map +1 -1
- package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs +1 -1
- package/dist/cjs/hooks/useKeyPress/useKeyPress.cjs.map +1 -1
- package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs +1 -1
- package/dist/cjs/hooks/useKeyboard/useKeyboard.cjs.map +1 -1
- package/dist/cjs/hooks/useKeysPressed/useKeysPressed.cjs.map +1 -1
- package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs +1 -1
- package/dist/cjs/hooks/useLockCallback/useLockCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useMemory/useMemory.cjs +1 -1
- package/dist/cjs/hooks/useMemory/useMemory.cjs.map +1 -1
- package/dist/cjs/hooks/useRerender/useRerender.cjs.map +1 -1
- package/dist/cjs/hooks/useScroll/useScroll.cjs.map +1 -1
- package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs +1 -1
- package/dist/cjs/hooks/useTextDirection/useTextDirection.cjs.map +1 -1
- package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs +1 -1
- package/dist/cjs/hooks/useThrottleCallback/useThrottleCallback.cjs.map +1 -1
- package/dist/cjs/hooks/useTime/useTime.cjs +1 -1
- package/dist/cjs/hooks/useTime/useTime.cjs.map +1 -1
- package/dist/cjs/hooks/useWindowEvent/useWindowEvent.cjs.map +1 -1
- package/dist/cjs/hooks/useWindowScroll/useWindowScroll.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/hooks/useAudio/useAudio.mjs.map +1 -1
- package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs +39 -0
- package/dist/esm/hooks/useAutoScroll/useAutoScroll.mjs.map +1 -0
- package/dist/esm/hooks/useBattery/useBattery.mjs +8 -8
- package/dist/esm/hooks/useBattery/useBattery.mjs.map +1 -1
- package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs +32 -0
- package/dist/esm/hooks/useBroadcastChannel/useBroadcastChannel.mjs.map +1 -0
- package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs +23 -25
- package/dist/esm/hooks/useDisplayMedia/useDisplayMedia.mjs.map +1 -1
- package/dist/esm/hooks/useEvent/useEvent.mjs +6 -6
- package/dist/esm/hooks/useEvent/useEvent.mjs.map +1 -1
- package/dist/esm/hooks/useKeyPress/useKeyPress.mjs.map +1 -1
- package/dist/esm/hooks/useKeyboard/useKeyboard.mjs +15 -15
- package/dist/esm/hooks/useKeyboard/useKeyboard.mjs.map +1 -1
- package/dist/esm/hooks/useKeysPressed/useKeysPressed.mjs.map +1 -1
- package/dist/esm/hooks/useLockCallback/useLockCallback.mjs.map +1 -1
- package/dist/esm/hooks/useMemory/useMemory.mjs +9 -8
- package/dist/esm/hooks/useMemory/useMemory.mjs.map +1 -1
- package/dist/esm/hooks/useRerender/useRerender.mjs.map +1 -1
- package/dist/esm/hooks/useScroll/useScroll.mjs.map +1 -1
- package/dist/esm/hooks/useTextDirection/useTextDirection.mjs +9 -10
- package/dist/esm/hooks/useTextDirection/useTextDirection.mjs.map +1 -1
- package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs +11 -11
- package/dist/esm/hooks/useThrottleCallback/useThrottleCallback.mjs.map +1 -1
- package/dist/esm/hooks/useTime/useTime.mjs +10 -6
- package/dist/esm/hooks/useTime/useTime.mjs.map +1 -1
- package/dist/esm/hooks/useWindowEvent/useWindowEvent.mjs.map +1 -1
- package/dist/esm/hooks/useWindowScroll/useWindowScroll.mjs.map +1 -1
- package/dist/esm/index.mjs +336 -332
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useAutoScroll/useAutoScroll.d.ts +33 -0
- package/dist/types/hooks/useBroadcastChannel/useBroadcastChannel.d.ts +32 -0
- package/dist/types/hooks/useKeyPress/useKeyPress.d.ts +1 -1
- package/dist/types/hooks/useKeyboard/useKeyboard.d.ts +28 -8
- package/dist/types/hooks/useTime/useTime.d.ts +8 -0
- package/dist/types/hooks/useWindowEvent/useWindowEvent.d.ts +1 -1
- package/dist/types/hooks/useWindowScroll/useWindowScroll.d.ts +1 -1
- package/package.json +89 -89
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./helpers/createContext/createContext.cjs"),y=require("./helpers/createEventEmitter/createEventEmitter.cjs"),I=require("./helpers/createReactiveContext/createReactiveContext.cjs"),O=require("./helpers/createStore/createStore.cjs"),v=require("./hooks/useActiveElement/useActiveElement.cjs"),k=require("./hooks/useAsync/useAsync.cjs"),A=require("./hooks/useAudio/useAudio.cjs"),D=require("./hooks/useBattery/useBattery.cjs"),h=require("./hooks/useBluetooth/useBluetooth.cjs"),M=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),L=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),b=require("./hooks/useClickOutside/useClickOutside.cjs"),f=require("./hooks/useClipboard/useClipboard.cjs"),_=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),i=require("./hooks/useCookies/useCookies.cjs"),N=require("./hooks/useCopy/useCopy.cjs"),B=require("./hooks/useCounter/useCounter.cjs"),F=require("./hooks/useCssVar/useCssVar.cjs"),K=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),V=require("./hooks/useDebounceValue/useDebounceValue.cjs"),U=require("./hooks/useDefault/useDefault.cjs"),w=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),W=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),H=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),x=require("./hooks/useDidUpdate/useDidUpdate.cjs"),Q=require("./hooks/useDisclosure/useDisclosure.cjs"),z=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),G=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),X=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),Z=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),n=require("./hooks/useDoubleClick/useDoubleClick.cjs"),j=require("./hooks/useDropZone/useDropZone.cjs"),J=require("./hooks/useElementSize/useElementSize.cjs"),Y=require("./hooks/useEvent/useEvent.cjs"),$=require("./hooks/useEventListener/useEventListener.cjs"),ee=require("./hooks/useEventSource/useEventSource.cjs"),se=require("./hooks/useEyeDropper/useEyeDropper.cjs"),ue=require("./hooks/useFavicon/useFavicon.cjs"),re=require("./hooks/useField/useField.cjs"),te=require("./hooks/useFileDialog/useFileDialog.cjs"),oe=require("./hooks/useFocus/useFocus.cjs"),ie=require("./hooks/useFps/useFps.cjs"),ne=require("./hooks/useFul/useFul.cjs"),ce=require("./hooks/useFullscreen/useFullscreen.cjs"),c=require("./hooks/useGamepad/useGamepad.cjs"),ae=require("./hooks/useGeolocation/useGeolocation.cjs"),le=require("./hooks/useHash/useHash.cjs"),a=require("./hooks/useHotkeys/useHotkeys.cjs"),Se=require("./hooks/useHover/useHover.cjs"),qe=require("./hooks/useIdle/useIdle.cjs"),de=require("./hooks/useImage/useImage.cjs"),Ee=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),ge=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Pe=require("./hooks/useInterval/useInterval.cjs"),Te=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Ce=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),me=require("./hooks/useKeyboard/useKeyboard.cjs"),Re=require("./hooks/useKeyPress/useKeyPress.cjs"),pe=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),ye=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Ie=require("./hooks/useLastChanged/useLastChanged.cjs"),Oe=require("./hooks/useLatest/useLatest.cjs"),ve=require("./hooks/useLess/useLess.cjs"),ke=require("./hooks/useList/useList.cjs"),Ae=require("./hooks/useLocalStorage/useLocalStorage.cjs"),De=require("./hooks/useLockCallback/useLockCallback.cjs"),he=require("./hooks/useLogger/useLogger.cjs"),Me=require("./hooks/useLongPress/useLongPress.cjs"),Le=require("./hooks/useMap/useMap.cjs"),be=require("./hooks/useMeasure/useMeasure.cjs"),l=require("./hooks/useMediaControls/useMediaControls.cjs"),fe=require("./hooks/useMediaQuery/useMediaQuery.cjs"),_e=require("./hooks/useMemory/useMemory.cjs"),Ne=require("./hooks/useMount/useMount.cjs"),Be=require("./hooks/useMouse/useMouse.cjs"),Fe=require("./hooks/useMutation/useMutation.cjs"),Ke=require("./hooks/useMutationObserver/useMutationObserver.cjs"),S=require("./hooks/useNetwork/useNetwork.cjs"),Ve=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Ue=require("./hooks/useOnce/useOnce.cjs"),we=require("./hooks/useOnline/useOnline.cjs"),q=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),We=require("./hooks/useOptimistic/useOptimistic.cjs"),He=require("./hooks/useOrientation/useOrientation.cjs"),xe=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Qe=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),ze=require("./hooks/useParallax/useParallax.cjs"),Ge=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Xe=require("./hooks/usePermission/usePermission.cjs"),Ze=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),je=require("./hooks/usePointerLock/usePointerLock.cjs"),Je=require("./hooks/usePostMessage/usePostMessage.cjs"),Ye=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),$e=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),es=require("./hooks/usePreferredDark/usePreferredDark.cjs"),ss=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),us=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),rs=require("./hooks/usePrevious/usePrevious.cjs"),ts=require("./hooks/useQuery/useQuery.cjs"),os=require("./hooks/useQueue/useQueue.cjs"),is=require("./hooks/useRaf/useRaf.cjs"),ns=require("./hooks/useRafValue/useRafValue.cjs"),cs=require("./hooks/useRefState/useRefState.cjs"),as=require("./hooks/useRenderCount/useRenderCount.cjs"),ls=require("./hooks/useRenderInfo/useRenderInfo.cjs"),Ss=require("./hooks/useRerender/useRerender.cjs"),qs=require("./hooks/useResizeObserver/useResizeObserver.cjs"),ds=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),d=require("./hooks/useScript/useScript.cjs"),Es=require("./hooks/useScroll/useScroll.cjs"),gs=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),Ps=require("./hooks/useScrollTo/useScrollTo.cjs"),Ts=require("./hooks/useSessionStorage/useSessionStorage.cjs"),Cs=require("./hooks/useSet/useSet.cjs"),E=require("./hooks/useShallowEffect/useShallowEffect.cjs"),ms=require("./hooks/useShare/useShare.cjs"),g=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),Rs=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),P=require("./hooks/useStateHistory/useStateHistory.cjs"),ps=require("./hooks/useStep/useStep.cjs"),ys=require("./hooks/useSticky/useSticky.cjs"),Is=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),Os=require("./hooks/useTextDirection/useTextDirection.cjs"),T=require("./hooks/useTextSelection/useTextSelection.cjs"),vs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),ks=require("./hooks/useThrottleValue/useThrottleValue.cjs"),As=require("./hooks/useTime/useTime.cjs"),Ds=require("./hooks/useTimeout/useTimeout.cjs"),C=require("./hooks/useTimer/useTimer.cjs"),hs=require("./hooks/useToggle/useToggle.cjs"),Ms=require("./hooks/useUnmount/useUnmount.cjs"),u=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),Ls=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),bs=require("./hooks/useVibrate/useVibrate.cjs"),fs=require("./hooks/useWakeLock/useWakeLock.cjs"),_s=require("./hooks/useWebSocket/useWebSocket.cjs"),Ns=require("./hooks/useWindowEvent/useWindowEvent.cjs"),Bs=require("./hooks/useWindowFocus/useWindowFocus.cjs"),m=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Fs=require("./hooks/useWindowSize/useWindowSize.cjs"),Ks=require("./hooks/useWizard/useWizard.cjs"),R=require("./utils/helpers/copy.cjs"),Vs=require("./utils/helpers/debounce.cjs"),Us=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),ws=require("./utils/helpers/getRetry.cjs"),Ws=require("./utils/helpers/isTarget.cjs"),Hs=require("./utils/helpers/throttle.cjs");exports.createContext=p.createContext;exports.createEventEmitter=y.createEventEmitter;exports.createReactiveContext=I.createReactiveContext;exports.createStore=O.createStore;exports.useActiveElement=v.useActiveElement;exports.useAsync=k.useAsync;exports.useAudio=A.useAudio;exports.useBattery=D.useBattery;exports.useBluetooth=h.useBluetooth;exports.useBoolean=M.useBoolean;exports.BREAKPOINTS_ANT_DESIGN=e.BREAKPOINTS_ANT_DESIGN;exports.BREAKPOINTS_BOOTSTRAP_V5=e.BREAKPOINTS_BOOTSTRAP_V5;exports.BREAKPOINTS_MANTINE=e.BREAKPOINTS_MANTINE;exports.BREAKPOINTS_MASTER_CSS=e.BREAKPOINTS_MASTER_CSS;exports.BREAKPOINTS_MATERIAL_UI=e.BREAKPOINTS_MATERIAL_UI;exports.BREAKPOINTS_PRIME_FLEX=e.BREAKPOINTS_PRIME_FLEX;exports.BREAKPOINTS_QUASAR_V2=e.BREAKPOINTS_QUASAR_V2;exports.BREAKPOINTS_SEMANTIC=e.BREAKPOINTS_SEMANTIC;exports.BREAKPOINTS_TAILWIND=e.BREAKPOINTS_TAILWIND;exports.useBreakpoints=e.useBreakpoints;exports.useBrowserLanguage=L.useBrowserLanguage;exports.useClickOutside=b.useClickOutside;exports.useClipboard=f.useClipboard;exports.useConst=_.useConst;exports.COOKIE_EVENT=s.COOKIE_EVENT;exports.dispatchCookieEvent=s.dispatchCookieEvent;exports.getCookie=s.getCookie;exports.getCookies=s.getCookies;exports.removeCookie=s.removeCookie;exports.removeCookieItem=s.removeCookieItem;exports.setCookie=s.setCookie;exports.setCookieItem=s.setCookieItem;exports.useCookie=s.useCookie;exports.clearCookies=i.clearCookies;exports.useCookies=i.useCookies;exports.useCopy=N.useCopy;exports.useCounter=B.useCounter;exports.useCssVar=F.useCssVar;exports.useDebounceCallback=K.useDebounceCallback;exports.useDebounceValue=V.useDebounceValue;exports.useDefault=U.useDefault;exports.useDeviceMotion=w.useDeviceMotion;exports.useDeviceOrientation=W.useDeviceOrientation;exports.useDevicePixelRatio=H.useDevicePixelRatio;exports.useDidUpdate=x.useDidUpdate;exports.useDisclosure=Q.useDisclosure;exports.useDisplayMedia=z.useDisplayMedia;exports.useDocumentEvent=G.useDocumentEvent;exports.useDocumentTitle=X.useDocumentTitle;exports.useDocumentVisibility=Z.useDocumentVisibility;exports.DEFAULT_THRESHOLD_TIME=n.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=n.useDoubleClick;exports.useDropZone=j.useDropZone;exports.useElementSize=J.useElementSize;exports.useEvent=Y.useEvent;exports.useEventListener=$.useEventListener;exports.useEventSource=ee.useEventSource;exports.useEyeDropper=se.useEyeDropper;exports.useFavicon=ue.useFavicon;exports.useField=re.useField;exports.useFileDialog=te.useFileDialog;exports.useFocus=oe.useFocus;exports.useFps=ie.useFps;exports.useFul=ne.useFul;exports.useFullscreen=ce.useFullscreen;exports.mapGamepadToXbox360Controller=c.mapGamepadToXbox360Controller;exports.useGamepad=c.useGamepad;exports.useGeolocation=ae.useGeolocation;exports.useHash=le.useHash;exports.isHotkeyMatch=a.isHotkeyMatch;exports.useHotkeys=a.useHotkeys;exports.useHover=Se.useHover;exports.useIdle=qe.useIdle;exports.useImage=de.useImage;exports.useInfiniteScroll=Ee.useInfiniteScroll;exports.useIntersectionObserver=ge.useIntersectionObserver;exports.useInterval=Pe.useInterval;exports.useIsFirstRender=Te.useIsFirstRender;exports.useIsomorphicLayoutEffect=Ce.useIsomorphicLayoutEffect;exports.useKeyboard=me.useKeyboard;exports.useKeyPress=Re.useKeyPress;exports.useKeyPressEvent=pe.useKeyPressEvent;exports.useKeysPressed=ye.useKeysPressed;exports.useLastChanged=Ie.useLastChanged;exports.useLatest=Oe.useLatest;exports.useLess=ve.useLess;exports.useList=ke.useList;exports.useLocalStorage=Ae.useLocalStorage;exports.useLockCallback=De.useLockCallback;exports.useLogger=he.useLogger;exports.useLongPress=Me.useLongPress;exports.useMap=Le.useMap;exports.useMeasure=be.useMeasure;exports.timeRangeToArray=l.timeRangeToArray;exports.useMediaControls=l.useMediaControls;exports.useMediaQuery=fe.useMediaQuery;exports.useMemory=_e.useMemory;exports.useMount=Ne.useMount;exports.useMouse=Be.useMouse;exports.useMutation=Fe.useMutation;exports.useMutationObserver=Ke.useMutationObserver;exports.getConnection=S.getConnection;exports.useNetwork=S.useNetwork;exports.useOffsetPagination=Ve.useOffsetPagination;exports.useOnce=Ue.useOnce;exports.useOnline=we.useOnline;exports.getOperatingSystem=q.getOperatingSystem;exports.useOperatingSystem=q.useOperatingSystem;exports.useOptimistic=We.useOptimistic;exports.useOrientation=He.useOrientation;exports.useOtpCredential=xe.useOtpCredential;exports.usePageLeave=Qe.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=ze.useParallax;exports.usePerformanceObserver=Ge.usePerformanceObserver;exports.usePermission=Xe.usePermission;exports.usePictureInPicture=Ze.usePictureInPicture;exports.usePointerLock=je.usePointerLock;exports.usePostMessage=Je.usePostMessage;exports.usePreferredColorScheme=Ye.usePreferredColorScheme;exports.usePreferredContrast=$e.usePreferredContrast;exports.usePreferredDark=es.usePreferredDark;exports.usePreferredLanguages=ss.usePreferredLanguages;exports.usePreferredReducedMotion=us.usePreferredReducedMotion;exports.usePrevious=rs.usePrevious;exports.useQuery=ts.useQuery;exports.useQueue=os.useQueue;exports.useRaf=is.useRaf;exports.useRafValue=ns.useRafValue;exports.useRefState=cs.useRefState;exports.useRenderCount=as.useRenderCount;exports.useRenderInfo=ls.useRenderInfo;exports.useRerender=Ss.useRerender;exports.useResizeObserver=qs.useResizeObserver;exports.useScreenOrientation=ds.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useScroll=Es.useScroll;exports.useScrollIntoView=gs.useScrollIntoView;exports.useScrollTo=Ps.useScrollTo;exports.useSessionStorage=Ts.useSessionStorage;exports.useSet=Cs.useSet;exports.deepEqual=E.deepEqual;exports.useShallowEffect=E.useShallowEffect;exports.useShare=ms.useShare;exports.getSpeechRecognition=g.getSpeechRecognition;exports.useSpeechRecognition=g.useSpeechRecognition;exports.useSpeechSynthesis=Rs.useSpeechSynthesis;exports.stateHistoryReducer=P.stateHistoryReducer;exports.useStateHistory=P.useStateHistory;exports.useStep=ps.useStep;exports.useSticky=ys.useSticky;exports.useStopwatch=Is.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=Os.useTextDirection;exports.getRangesSelection=T.getRangesSelection;exports.useTextSelection=T.useTextSelection;exports.useThrottleCallback=vs.useThrottleCallback;exports.useThrottleValue=ks.useThrottleValue;exports.useTime=As.useTime;exports.useTimeout=Ds.useTimeout;exports.getTimeFromSeconds=C.getTimeFromSeconds;exports.useTimer=C.useTimer;exports.useToggle=hs.useToggle;exports.useUnmount=Ms.useUnmount;exports.URL_SEARCH_PARAMS_EVENT=u.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=u.createQueryString;exports.dispatchUrlSearchParamsEvent=u.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=u.getUrlSearchParams;exports.useUrlSearchParam=u.useUrlSearchParam;exports.useUrlSearchParams=Ls.useUrlSearchParams;exports.useVibrate=bs.useVibrate;exports.useWakeLock=fs.useWakeLock;exports.useWebSocket=_s.useWebSocket;exports.useWindowEvent=Ns.useWindowEvent;exports.useWindowFocus=Bs.useWindowFocus;exports.scrollTo=m.scrollTo;exports.useWindowScroll=m.useWindowScroll;exports.useWindowSize=Fs.useWindowSize;exports.useWizard=Ks.useWizard;exports.copy=R.copy;exports.legacyCopyToClipboard=R.legacyCopyToClipboard;exports.debounce=Vs.debounce;exports.getDate=Us.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=ws.getRetry;exports.isTarget=Ws.isTarget;exports.throttle=Hs.throttle;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./helpers/createContext/createContext.cjs"),y=require("./helpers/createEventEmitter/createEventEmitter.cjs"),I=require("./helpers/createReactiveContext/createReactiveContext.cjs"),O=require("./helpers/createStore/createStore.cjs"),v=require("./hooks/useActiveElement/useActiveElement.cjs"),k=require("./hooks/useAsync/useAsync.cjs"),A=require("./hooks/useAudio/useAudio.cjs"),h=require("./hooks/useAutoScroll/useAutoScroll.cjs"),D=require("./hooks/useBattery/useBattery.cjs"),M=require("./hooks/useBluetooth/useBluetooth.cjs"),L=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),b=require("./hooks/useBroadcastChannel/useBroadcastChannel.cjs"),f=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),_=require("./hooks/useClickOutside/useClickOutside.cjs"),N=require("./hooks/useClipboard/useClipboard.cjs"),B=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),i=require("./hooks/useCookies/useCookies.cjs"),F=require("./hooks/useCopy/useCopy.cjs"),K=require("./hooks/useCounter/useCounter.cjs"),V=require("./hooks/useCssVar/useCssVar.cjs"),U=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),w=require("./hooks/useDebounceValue/useDebounceValue.cjs"),W=require("./hooks/useDefault/useDefault.cjs"),H=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),x=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),Q=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),z=require("./hooks/useDidUpdate/useDidUpdate.cjs"),G=require("./hooks/useDisclosure/useDisclosure.cjs"),X=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),Z=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),j=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),J=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),n=require("./hooks/useDoubleClick/useDoubleClick.cjs"),Y=require("./hooks/useDropZone/useDropZone.cjs"),$=require("./hooks/useElementSize/useElementSize.cjs"),ee=require("./hooks/useEvent/useEvent.cjs"),se=require("./hooks/useEventListener/useEventListener.cjs"),ue=require("./hooks/useEventSource/useEventSource.cjs"),re=require("./hooks/useEyeDropper/useEyeDropper.cjs"),te=require("./hooks/useFavicon/useFavicon.cjs"),oe=require("./hooks/useField/useField.cjs"),ie=require("./hooks/useFileDialog/useFileDialog.cjs"),ne=require("./hooks/useFocus/useFocus.cjs"),ce=require("./hooks/useFps/useFps.cjs"),ae=require("./hooks/useFul/useFul.cjs"),le=require("./hooks/useFullscreen/useFullscreen.cjs"),c=require("./hooks/useGamepad/useGamepad.cjs"),Se=require("./hooks/useGeolocation/useGeolocation.cjs"),qe=require("./hooks/useHash/useHash.cjs"),a=require("./hooks/useHotkeys/useHotkeys.cjs"),de=require("./hooks/useHover/useHover.cjs"),Ee=require("./hooks/useIdle/useIdle.cjs"),ge=require("./hooks/useImage/useImage.cjs"),Pe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),Te=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Ce=require("./hooks/useInterval/useInterval.cjs"),me=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),Re=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),pe=require("./hooks/useKeyboard/useKeyboard.cjs"),ye=require("./hooks/useKeyPress/useKeyPress.cjs"),Ie=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),Oe=require("./hooks/useKeysPressed/useKeysPressed.cjs"),ve=require("./hooks/useLastChanged/useLastChanged.cjs"),ke=require("./hooks/useLatest/useLatest.cjs"),Ae=require("./hooks/useLess/useLess.cjs"),he=require("./hooks/useList/useList.cjs"),De=require("./hooks/useLocalStorage/useLocalStorage.cjs"),Me=require("./hooks/useLockCallback/useLockCallback.cjs"),Le=require("./hooks/useLogger/useLogger.cjs"),be=require("./hooks/useLongPress/useLongPress.cjs"),fe=require("./hooks/useMap/useMap.cjs"),_e=require("./hooks/useMeasure/useMeasure.cjs"),l=require("./hooks/useMediaControls/useMediaControls.cjs"),Ne=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Be=require("./hooks/useMemory/useMemory.cjs"),Fe=require("./hooks/useMount/useMount.cjs"),Ke=require("./hooks/useMouse/useMouse.cjs"),Ve=require("./hooks/useMutation/useMutation.cjs"),Ue=require("./hooks/useMutationObserver/useMutationObserver.cjs"),S=require("./hooks/useNetwork/useNetwork.cjs"),we=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),We=require("./hooks/useOnce/useOnce.cjs"),He=require("./hooks/useOnline/useOnline.cjs"),q=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),xe=require("./hooks/useOptimistic/useOptimistic.cjs"),Qe=require("./hooks/useOrientation/useOrientation.cjs"),ze=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Ge=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Xe=require("./hooks/useParallax/useParallax.cjs"),Ze=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),je=require("./hooks/usePermission/usePermission.cjs"),Je=require("./hooks/usePictureInPicture/usePictureInPicture.cjs"),Ye=require("./hooks/usePointerLock/usePointerLock.cjs"),$e=require("./hooks/usePostMessage/usePostMessage.cjs"),es=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),ss=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),us=require("./hooks/usePreferredDark/usePreferredDark.cjs"),rs=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),ts=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),os=require("./hooks/usePrevious/usePrevious.cjs"),is=require("./hooks/useQuery/useQuery.cjs"),ns=require("./hooks/useQueue/useQueue.cjs"),cs=require("./hooks/useRaf/useRaf.cjs"),as=require("./hooks/useRafValue/useRafValue.cjs"),ls=require("./hooks/useRefState/useRefState.cjs"),Ss=require("./hooks/useRenderCount/useRenderCount.cjs"),qs=require("./hooks/useRenderInfo/useRenderInfo.cjs"),ds=require("./hooks/useRerender/useRerender.cjs"),Es=require("./hooks/useResizeObserver/useResizeObserver.cjs"),gs=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),d=require("./hooks/useScript/useScript.cjs"),Ps=require("./hooks/useScroll/useScroll.cjs"),Ts=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),Cs=require("./hooks/useScrollTo/useScrollTo.cjs"),ms=require("./hooks/useSessionStorage/useSessionStorage.cjs"),Rs=require("./hooks/useSet/useSet.cjs"),E=require("./hooks/useShallowEffect/useShallowEffect.cjs"),ps=require("./hooks/useShare/useShare.cjs"),g=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),ys=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),P=require("./hooks/useStateHistory/useStateHistory.cjs"),Is=require("./hooks/useStep/useStep.cjs"),Os=require("./hooks/useSticky/useSticky.cjs"),vs=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),ks=require("./hooks/useTextDirection/useTextDirection.cjs"),T=require("./hooks/useTextSelection/useTextSelection.cjs"),As=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),hs=require("./hooks/useThrottleValue/useThrottleValue.cjs"),Ds=require("./hooks/useTime/useTime.cjs"),Ms=require("./hooks/useTimeout/useTimeout.cjs"),C=require("./hooks/useTimer/useTimer.cjs"),Ls=require("./hooks/useToggle/useToggle.cjs"),bs=require("./hooks/useUnmount/useUnmount.cjs"),u=require("./hooks/useUrlSearchParam/useUrlSearchParam.cjs"),fs=require("./hooks/useUrlSearchParams/useUrlSearchParams.cjs"),_s=require("./hooks/useVibrate/useVibrate.cjs"),Ns=require("./hooks/useWakeLock/useWakeLock.cjs"),Bs=require("./hooks/useWebSocket/useWebSocket.cjs"),Fs=require("./hooks/useWindowEvent/useWindowEvent.cjs"),Ks=require("./hooks/useWindowFocus/useWindowFocus.cjs"),m=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Vs=require("./hooks/useWindowSize/useWindowSize.cjs"),Us=require("./hooks/useWizard/useWizard.cjs"),R=require("./utils/helpers/copy.cjs"),ws=require("./utils/helpers/debounce.cjs"),Ws=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),Hs=require("./utils/helpers/getRetry.cjs"),xs=require("./utils/helpers/isTarget.cjs"),Qs=require("./utils/helpers/throttle.cjs");exports.createContext=p.createContext;exports.createEventEmitter=y.createEventEmitter;exports.createReactiveContext=I.createReactiveContext;exports.createStore=O.createStore;exports.useActiveElement=v.useActiveElement;exports.useAsync=k.useAsync;exports.useAudio=A.useAudio;exports.useAutoScroll=h.useAutoScroll;exports.useBattery=D.useBattery;exports.useBluetooth=M.useBluetooth;exports.useBoolean=L.useBoolean;exports.BREAKPOINTS_ANT_DESIGN=e.BREAKPOINTS_ANT_DESIGN;exports.BREAKPOINTS_BOOTSTRAP_V5=e.BREAKPOINTS_BOOTSTRAP_V5;exports.BREAKPOINTS_MANTINE=e.BREAKPOINTS_MANTINE;exports.BREAKPOINTS_MASTER_CSS=e.BREAKPOINTS_MASTER_CSS;exports.BREAKPOINTS_MATERIAL_UI=e.BREAKPOINTS_MATERIAL_UI;exports.BREAKPOINTS_PRIME_FLEX=e.BREAKPOINTS_PRIME_FLEX;exports.BREAKPOINTS_QUASAR_V2=e.BREAKPOINTS_QUASAR_V2;exports.BREAKPOINTS_SEMANTIC=e.BREAKPOINTS_SEMANTIC;exports.BREAKPOINTS_TAILWIND=e.BREAKPOINTS_TAILWIND;exports.useBreakpoints=e.useBreakpoints;exports.useBroadcastChannel=b.useBroadcastChannel;exports.useBrowserLanguage=f.useBrowserLanguage;exports.useClickOutside=_.useClickOutside;exports.useClipboard=N.useClipboard;exports.useConst=B.useConst;exports.COOKIE_EVENT=s.COOKIE_EVENT;exports.dispatchCookieEvent=s.dispatchCookieEvent;exports.getCookie=s.getCookie;exports.getCookies=s.getCookies;exports.removeCookie=s.removeCookie;exports.removeCookieItem=s.removeCookieItem;exports.setCookie=s.setCookie;exports.setCookieItem=s.setCookieItem;exports.useCookie=s.useCookie;exports.clearCookies=i.clearCookies;exports.useCookies=i.useCookies;exports.useCopy=F.useCopy;exports.useCounter=K.useCounter;exports.useCssVar=V.useCssVar;exports.useDebounceCallback=U.useDebounceCallback;exports.useDebounceValue=w.useDebounceValue;exports.useDefault=W.useDefault;exports.useDeviceMotion=H.useDeviceMotion;exports.useDeviceOrientation=x.useDeviceOrientation;exports.useDevicePixelRatio=Q.useDevicePixelRatio;exports.useDidUpdate=z.useDidUpdate;exports.useDisclosure=G.useDisclosure;exports.useDisplayMedia=X.useDisplayMedia;exports.useDocumentEvent=Z.useDocumentEvent;exports.useDocumentTitle=j.useDocumentTitle;exports.useDocumentVisibility=J.useDocumentVisibility;exports.DEFAULT_THRESHOLD_TIME=n.DEFAULT_THRESHOLD_TIME;exports.useDoubleClick=n.useDoubleClick;exports.useDropZone=Y.useDropZone;exports.useElementSize=$.useElementSize;exports.useEvent=ee.useEvent;exports.useEventListener=se.useEventListener;exports.useEventSource=ue.useEventSource;exports.useEyeDropper=re.useEyeDropper;exports.useFavicon=te.useFavicon;exports.useField=oe.useField;exports.useFileDialog=ie.useFileDialog;exports.useFocus=ne.useFocus;exports.useFps=ce.useFps;exports.useFul=ae.useFul;exports.useFullscreen=le.useFullscreen;exports.mapGamepadToXbox360Controller=c.mapGamepadToXbox360Controller;exports.useGamepad=c.useGamepad;exports.useGeolocation=Se.useGeolocation;exports.useHash=qe.useHash;exports.isHotkeyMatch=a.isHotkeyMatch;exports.useHotkeys=a.useHotkeys;exports.useHover=de.useHover;exports.useIdle=Ee.useIdle;exports.useImage=ge.useImage;exports.useInfiniteScroll=Pe.useInfiniteScroll;exports.useIntersectionObserver=Te.useIntersectionObserver;exports.useInterval=Ce.useInterval;exports.useIsFirstRender=me.useIsFirstRender;exports.useIsomorphicLayoutEffect=Re.useIsomorphicLayoutEffect;exports.useKeyboard=pe.useKeyboard;exports.useKeyPress=ye.useKeyPress;exports.useKeyPressEvent=Ie.useKeyPressEvent;exports.useKeysPressed=Oe.useKeysPressed;exports.useLastChanged=ve.useLastChanged;exports.useLatest=ke.useLatest;exports.useLess=Ae.useLess;exports.useList=he.useList;exports.useLocalStorage=De.useLocalStorage;exports.useLockCallback=Me.useLockCallback;exports.useLogger=Le.useLogger;exports.useLongPress=be.useLongPress;exports.useMap=fe.useMap;exports.useMeasure=_e.useMeasure;exports.timeRangeToArray=l.timeRangeToArray;exports.useMediaControls=l.useMediaControls;exports.useMediaQuery=Ne.useMediaQuery;exports.useMemory=Be.useMemory;exports.useMount=Fe.useMount;exports.useMouse=Ke.useMouse;exports.useMutation=Ve.useMutation;exports.useMutationObserver=Ue.useMutationObserver;exports.getConnection=S.getConnection;exports.useNetwork=S.useNetwork;exports.useOffsetPagination=we.useOffsetPagination;exports.useOnce=We.useOnce;exports.useOnline=He.useOnline;exports.getOperatingSystem=q.getOperatingSystem;exports.useOperatingSystem=q.useOperatingSystem;exports.useOptimistic=xe.useOptimistic;exports.useOrientation=Qe.useOrientation;exports.useOtpCredential=ze.useOtpCredential;exports.usePageLeave=Ge.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=Xe.useParallax;exports.usePerformanceObserver=Ze.usePerformanceObserver;exports.usePermission=je.usePermission;exports.usePictureInPicture=Je.usePictureInPicture;exports.usePointerLock=Ye.usePointerLock;exports.usePostMessage=$e.usePostMessage;exports.usePreferredColorScheme=es.usePreferredColorScheme;exports.usePreferredContrast=ss.usePreferredContrast;exports.usePreferredDark=us.usePreferredDark;exports.usePreferredLanguages=rs.usePreferredLanguages;exports.usePreferredReducedMotion=ts.usePreferredReducedMotion;exports.usePrevious=os.usePrevious;exports.useQuery=is.useQuery;exports.useQueue=ns.useQueue;exports.useRaf=cs.useRaf;exports.useRafValue=as.useRafValue;exports.useRefState=ls.useRefState;exports.useRenderCount=Ss.useRenderCount;exports.useRenderInfo=qs.useRenderInfo;exports.useRerender=ds.useRerender;exports.useResizeObserver=Es.useResizeObserver;exports.useScreenOrientation=gs.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=d.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=d.useScript;exports.useScroll=Ps.useScroll;exports.useScrollIntoView=Ts.useScrollIntoView;exports.useScrollTo=Cs.useScrollTo;exports.useSessionStorage=ms.useSessionStorage;exports.useSet=Rs.useSet;exports.deepEqual=E.deepEqual;exports.useShallowEffect=E.useShallowEffect;exports.useShare=ps.useShare;exports.getSpeechRecognition=g.getSpeechRecognition;exports.useSpeechRecognition=g.useSpeechRecognition;exports.useSpeechSynthesis=ys.useSpeechSynthesis;exports.stateHistoryReducer=P.stateHistoryReducer;exports.useStateHistory=P.useStateHistory;exports.useStep=Is.useStep;exports.useSticky=Os.useSticky;exports.useStopwatch=vs.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=ks.useTextDirection;exports.getRangesSelection=T.getRangesSelection;exports.useTextSelection=T.useTextSelection;exports.useThrottleCallback=As.useThrottleCallback;exports.useThrottleValue=hs.useThrottleValue;exports.useTime=Ds.useTime;exports.useTimeout=Ms.useTimeout;exports.getTimeFromSeconds=C.getTimeFromSeconds;exports.useTimer=C.useTimer;exports.useToggle=Ls.useToggle;exports.useUnmount=bs.useUnmount;exports.URL_SEARCH_PARAMS_EVENT=u.URL_SEARCH_PARAMS_EVENT;exports.createQueryString=u.createQueryString;exports.dispatchUrlSearchParamsEvent=u.dispatchUrlSearchParamsEvent;exports.getUrlSearchParams=u.getUrlSearchParams;exports.useUrlSearchParam=u.useUrlSearchParam;exports.useUrlSearchParams=fs.useUrlSearchParams;exports.useVibrate=_s.useVibrate;exports.useWakeLock=Ns.useWakeLock;exports.useWebSocket=Bs.useWebSocket;exports.useWindowEvent=Fs.useWindowEvent;exports.useWindowFocus=Ks.useWindowFocus;exports.scrollTo=m.scrollTo;exports.useWindowScroll=m.useWindowScroll;exports.useWindowSize=Vs.useWindowSize;exports.useWizard=Us.useWizard;exports.copy=R.copy;exports.legacyCopyToClipboard=R.legacyCopyToClipboard;exports.debounce=ws.debounce;exports.getDate=Ws.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=Hs.getRetry;exports.isTarget=xs.isTarget;exports.throttle=Qs.throttle;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAudio.mjs","sources":["../../../../src/hooks/useAudio/useAudio.ts"],"sourcesContent":["import { useEffect, useRef, useState } from
|
|
1
|
+
{"version":3,"file":"useAudio.mjs","sources":["../../../../src/hooks/useAudio/useAudio.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** Type sprite map */\nexport interface SpriteMap {\n /** [start time in seconds, end time in seconds] */\n [key: string]: [number, number];\n}\n\n/** Type use audio options */\nexport interface UseAudioOptions {\n /** Whether audio playback is initially enabled */\n immediately?: boolean;\n /** Whether to stop current playback when starting a new one */\n interrupt?: boolean;\n /** Initial playback speed (0.5 to 2) */\n playbackRate?: number;\n /** Map of named audio segments for sprite-based playback */\n sprite?: SpriteMap;\n /** Initial volume level (0 to 1) */\n volume?: number;\n}\n\n/** Type use audio return type */\nexport interface UseAudioReturn {\n /** Current playback speed (0.5 to 2) */\n playbackRate: number;\n /** Whether audio is currently playing */\n playing: boolean;\n /** Current volume level (0 to 1) */\n volume: number;\n /** Set playback speed (0.5 to 2) */\n changePlaybackRate: (value: number) => void;\n /** Pause audio playback at current position */\n pause: () => void;\n /** Start audio playback from the beginning or specified sprite segment */\n play: (sprite?: string) => Promise<void>;\n /** Set audio volume level (0 to 1) */\n setVolume: (value: number) => void;\n /** Stop audio playback and reset position to start */\n stop: () => void;\n}\n\n/**\n * @name useAudio\n * @description - Hook that manages audio playback with sprite support\n * @category Browser\n *\n * @browserapi Audio https://developer.mozilla.org/en-US/docs/Web/API/Audio\n *\n * @template Value The type of the value\n * @param {string} url The URL of the audio file to play\n * @param {UseAudioOptions} [options] Audio configuration options\n * @param {number} [options.volume=1] Initial volume level (0 to 1)\n * @param {number} [options.playbackRate=1] Initial playback speed (0.5 to 2)\n * @param {boolean} [options.interrupt=false] Whether to stop current playback when starting a new one\n * @param {boolean} [options.soundEnabled=true] Whether audio playback is initially enabled\n * @param {SpriteMap} [options.sprite] Map of named audio segments for sprite-based playback\n * @returns {UseAudioReturn} An object containing audio controls and state\n *\n * @example\n * const audio = useAudio(\"/path/to/sound.mp3\");\n */\nexport const useAudio = (src: string, options: UseAudioOptions = {}): UseAudioReturn => {\n const [playing, setPlaying] = useState(false);\n const [volume, setCurrentVolume] = useState(options.volume ?? 1);\n const [playbackRate, setPlaybackRate] = useState(options.playbackRate ?? 1);\n\n const audioRef = useRef<HTMLAudioElement | null>(null);\n\n useEffect(() => {\n const audio = new Audio(src);\n\n audio.volume = volume;\n audio.playbackRate = playbackRate;\n audioRef.current = audio;\n\n if (options.immediately) audio.play();\n\n const onPlay = () => setPlaying(true);\n const onPause = () => setPlaying(false);\n const onEnded = () => setPlaying(false);\n const onTimeUpdate = () => {};\n const onVolumeChange = () => setCurrentVolume(audio.volume);\n const onRateChange = () => setPlaybackRate(audio.playbackRate);\n\n audio.addEventListener('play', onPlay);\n audio.addEventListener('pause', onPause);\n audio.addEventListener('ended', onEnded);\n audio.addEventListener('timeupdate', onTimeUpdate);\n audio.addEventListener('volumechange', onVolumeChange);\n audio.addEventListener('ratechange', onRateChange);\n\n return () => {\n audio.removeEventListener('play', onPlay);\n audio.removeEventListener('pause', onPause);\n audio.removeEventListener('ended', onEnded);\n audio.removeEventListener('timeupdate', onTimeUpdate);\n audio.removeEventListener('volumechange', onVolumeChange);\n audio.removeEventListener('ratechange', onRateChange);\n\n audio.pause();\n audio.remove();\n };\n }, [src]);\n\n const stop = () => {\n if (!audioRef.current) return;\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n };\n\n const play = async (spriteName?: string) => {\n if (!audioRef.current) return;\n if (options.interrupt) stop();\n\n if (!spriteName || !options.sprite?.[spriteName]) {\n await audioRef.current.play();\n return;\n }\n\n const [start, end] = options.sprite[spriteName];\n audioRef.current.currentTime = start;\n await audioRef.current.play();\n\n const checkTime = () => {\n if (!audioRef.current) return;\n if (audioRef.current.currentTime >= end) {\n stop();\n }\n\n if (!playing) return;\n\n requestAnimationFrame(checkTime);\n };\n\n requestAnimationFrame(checkTime);\n };\n\n const pause = () => audioRef.current?.pause();\n\n const setVolume = (value: number) => {\n if (!audioRef.current) return;\n const newVolume = Math.max(0, Math.min(1, value));\n audioRef.current.volume = newVolume;\n setCurrentVolume(newVolume);\n };\n\n const changePlaybackRate = (value: number) => {\n if (!audioRef.current) return;\n const newRate = Math.max(0.5, Math.min(2, value));\n audioRef.current.playbackRate = newRate;\n setPlaybackRate(newRate);\n };\n\n return {\n play,\n pause,\n stop,\n playing,\n setVolume,\n volume,\n changePlaybackRate,\n playbackRate\n };\n};\n"],"names":["useAudio","src","options","playing","setPlaying","useState","volume","setCurrentVolume","playbackRate","setPlaybackRate","audioRef","useRef","useEffect","audio","onPlay","onPause","onEnded","onTimeUpdate","onVolumeChange","onRateChange","stop","spriteName","start","end","checkTime","value","newVolume","newRate"],"mappings":";AA8DO,MAAMA,IAAW,CAACC,GAAaC,IAA2B,OAAuB;AACtF,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtC,CAACC,GAAQC,CAAgB,IAAIF,EAASH,EAAQ,UAAU,CAAC,GACzD,CAACM,GAAcC,CAAe,IAAIJ,EAASH,EAAQ,gBAAgB,CAAC,GAEpEQ,IAAWC,EAAgC,IAAI;AAErD,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAQ,IAAI,MAAMZ,CAAG;AAE3B,IAAAY,EAAM,SAASP,GACfO,EAAM,eAAeL,GACrBE,EAAS,UAAUG,GAEfX,EAAQ,eAAaW,EAAM,KAAA;AAE/B,UAAMC,IAAS,MAAMV,EAAW,EAAI,GAC9BW,IAAU,MAAMX,EAAW,EAAK,GAChCY,IAAU,MAAMZ,EAAW,EAAK,GAChCa,IAAe,MAAM;AAAA,IAAA,GACrBC,IAAiB,MAAMX,EAAiBM,EAAM,MAAM,GACpDM,IAAe,MAAMV,EAAgBI,EAAM,YAAY;AAE7D,WAAAA,EAAM,iBAAiB,QAAQC,CAAM,GACrCD,EAAM,iBAAiB,SAASE,CAAO,GACvCF,EAAM,iBAAiB,SAASG,CAAO,GACvCH,EAAM,iBAAiB,cAAcI,CAAY,GACjDJ,EAAM,iBAAiB,gBAAgBK,CAAc,GACrDL,EAAM,iBAAiB,cAAcM,CAAY,GAE1C,MAAM;AACX,MAAAN,EAAM,oBAAoB,QAAQC,CAAM,GACxCD,EAAM,oBAAoB,SAASE,CAAO,GAC1CF,EAAM,oBAAoB,SAASG,CAAO,GAC1CH,EAAM,oBAAoB,cAAcI,CAAY,GACpDJ,EAAM,oBAAoB,gBAAgBK,CAAc,GACxDL,EAAM,oBAAoB,cAAcM,CAAY,GAEpDN,EAAM,MAAA,GACNA,EAAM,OAAA;AAAA,IAAO;AAAA,EACf,GACC,CAACZ,CAAG,CAAC;AAER,QAAMmB,IAAO,MAAM;AACjB,IAAKV,EAAS,YACdA,EAAS,QAAQ,MAAA,GACjBA,EAAS,QAAQ,cAAc;AAAA,EAAA;AA8CjC,SAAO;AAAA,IACL,MA5CW,OAAOW,MAAwB;AAC1C,UAAI,CAACX,EAAS,QAAS;AAGvB,UAFIR,EAAQ,aAAWkB,EAAA,GAEnB,CAACC,KAAc,CAACnB,EAAQ,SAASmB,CAAU,GAAG;AAChD,cAAMX,EAAS,QAAQ,KAAA;AACvB;AAAA,MAAA;AAGF,YAAM,CAACY,GAAOC,CAAG,IAAIrB,EAAQ,OAAOmB,CAAU;AAC9C,MAAAX,EAAS,QAAQ,cAAcY,GAC/B,MAAMZ,EAAS,QAAQ,KAAA;AAEvB,YAAMc,IAAY,MAAM;AACtB,QAAKd,EAAS,YACVA,EAAS,QAAQ,eAAea,KAClCH,EAAA,GAGGjB,KAEL,sBAAsBqB,CAAS;AAAA,MAAA;AAGjC,4BAAsBA,CAAS;AAAA,IAAA;AAAA,IAqB/B,OAlBY,MAAMd,EAAS,SAAS,MAAA;AAAA,IAmBpC,MAAAU;AAAA,IACA,SAAAjB;AAAA,IACA,WAnBgB,CAACsB,MAAkB;AACnC,UAAI,CAACf,EAAS,QAAS;AACvB,YAAMgB,IAAY,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGD,CAAK,CAAC;AAChD,MAAAf,EAAS,QAAQ,SAASgB,GAC1BnB,EAAiBmB,CAAS;AAAA,IAAA;AAAA,IAgB1B,QAAApB;AAAA,IACA,oBAdyB,CAACmB,MAAkB;AAC5C,UAAI,CAACf,EAAS,QAAS;AACvB,YAAMiB,IAAU,KAAK,IAAI,KAAK,KAAK,IAAI,GAAGF,CAAK,CAAC;AAChD,MAAAf,EAAS,QAAQ,eAAeiB,GAChClB,EAAgBkB,CAAO;AAAA,IAAA;AAAA,IAWvB,cAAAnB;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useEffect as Y } from "react";
|
|
2
|
+
import { useRefState as g } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { getElement as T } from "../../utils/helpers/getElement.mjs";
|
|
4
|
+
const M = (...o) => {
|
|
5
|
+
const n = typeof o[0] != "object" || "current" in o[0] ? o[0] : void 0, S = o[1] || (typeof o[0] == "object" ? o[0] : {}), { enabled: u = !0 } = S, c = g();
|
|
6
|
+
if (Y(() => {
|
|
7
|
+
if (!u || !n && !c.state) return;
|
|
8
|
+
const t = n ? T(n) : c.state;
|
|
9
|
+
if (!t) return;
|
|
10
|
+
let r = !0, i = 0, h = 0;
|
|
11
|
+
const f = () => {
|
|
12
|
+
const { scrollHeight: e, clientHeight: s, scrollTop: l } = t, E = e - s, L = E / 2;
|
|
13
|
+
l < h ? r = !1 : E - l <= L && (r = !0), h = l;
|
|
14
|
+
}, a = (e) => {
|
|
15
|
+
e.deltaY < 0 ? r = !1 : f();
|
|
16
|
+
}, d = (e) => {
|
|
17
|
+
i = e.touches[0].clientY;
|
|
18
|
+
}, v = (e) => {
|
|
19
|
+
const s = e.touches[0].clientY;
|
|
20
|
+
i - s < 0 ? r = !1 : f(), i = s;
|
|
21
|
+
}, b = () => {
|
|
22
|
+
r && t.scrollTo({ top: t.scrollHeight });
|
|
23
|
+
};
|
|
24
|
+
t.addEventListener("wheel", a), t.addEventListener("touchstart", d), t.addEventListener("touchmove", v);
|
|
25
|
+
const m = new MutationObserver(b);
|
|
26
|
+
return m.observe(t, {
|
|
27
|
+
childList: !0,
|
|
28
|
+
subtree: !0,
|
|
29
|
+
characterData: !0
|
|
30
|
+
}), () => {
|
|
31
|
+
m.disconnect(), t.removeEventListener("wheel", a), t.removeEventListener("touchstart", d), t.removeEventListener("touchmove", v);
|
|
32
|
+
};
|
|
33
|
+
}, [u, n, c.state]), !n)
|
|
34
|
+
return c;
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
M as useAutoScroll
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=useAutoScroll.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoScroll.mjs","sources":["../../../../src/hooks/useAutoScroll/useAutoScroll.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use auto scroll options type */\nexport interface UseAutoScrollOptions {\n /** Whether auto-scrolling is enabled */\n enabled?: boolean;\n}\n\nexport interface UseAutoScroll {\n (target: HookTarget, options?: UseAutoScrollOptions): void;\n\n <Target extends HTMLElement>(options?: UseAutoScrollOptions): StateRef<Target>;\n}\n\n/**\n * @name useAutoScroll\n * @description - Hook that automatically scrolls a list element to the bottom\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to auto-scroll\n * @param {boolean} [options.enabled] Whether auto-scrolling is enabled\n * @returns {void}\n *\n * @example\n * useAutoScroll(ref);\n *\n * @overload\n * @template Target\n * @param {boolean} [options.enabled] Whether auto-scrolling is enabled\n * @returns {StateRef<Target>} A React ref to attach to the list element\n *\n * @example\n * const ref = useAutoScroll();\n */\nexport const useAutoScroll = ((...params: any[]) => {\n const target = (\n typeof params[0] !== 'object' || 'current' in params[0] ? params[0] : undefined\n ) as HookTarget | undefined;\n const options = (params[1] ||\n (typeof params[0] === 'object' ? params[0] : {})) as UseAutoScrollOptions;\n const { enabled = true } = options;\n\n const internalRef = useRefState<HTMLElement>();\n\n useEffect(() => {\n if (!enabled || (!target && !internalRef.state)) return;\n\n const element = (target ? getElement(target) : internalRef.state) as HTMLElement;\n\n if (!element) return;\n\n let shouldAutoScroll = true;\n let touchStartY = 0;\n let lastScrollTop = 0;\n\n const onCheckScrollPosition = () => {\n const { scrollHeight, clientHeight, scrollTop } = element;\n const maxScrollHeight = scrollHeight - clientHeight;\n const scrollThreshold = maxScrollHeight / 2;\n\n if (scrollTop < lastScrollTop) shouldAutoScroll = false;\n else if (maxScrollHeight - scrollTop <= scrollThreshold) shouldAutoScroll = true;\n\n lastScrollTop = scrollTop;\n };\n\n const onWheel = (event: WheelEvent) => {\n if (event.deltaY < 0) shouldAutoScroll = false;\n else onCheckScrollPosition();\n };\n\n const onTouchStart = (event: TouchEvent) => {\n touchStartY = event.touches[0].clientY;\n };\n\n const onTouchMove = (event: TouchEvent) => {\n const touchEndY = event.touches[0].clientY;\n const deltaY = touchStartY - touchEndY;\n\n if (deltaY < 0) shouldAutoScroll = false;\n else onCheckScrollPosition();\n\n touchStartY = touchEndY;\n };\n\n const onMutation = () => {\n if (!shouldAutoScroll) return;\n element.scrollTo({ top: element.scrollHeight });\n };\n\n element.addEventListener('wheel', onWheel);\n element.addEventListener('touchstart', onTouchStart);\n element.addEventListener('touchmove', onTouchMove);\n\n const observer = new MutationObserver(onMutation);\n\n observer.observe(element, {\n childList: true,\n subtree: true,\n characterData: true\n });\n\n return () => {\n observer.disconnect();\n element.removeEventListener('wheel', onWheel);\n element.removeEventListener('touchstart', onTouchStart);\n element.removeEventListener('touchmove', onTouchMove);\n };\n }, [enabled, target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseAutoScroll;\n"],"names":["useAutoScroll","params","target","options","enabled","internalRef","useRefState","useEffect","element","getElement","shouldAutoScroll","touchStartY","lastScrollTop","onCheckScrollPosition","scrollHeight","clientHeight","scrollTop","maxScrollHeight","scrollThreshold","onWheel","event","onTouchStart","onTouchMove","touchEndY","onMutation","observer"],"mappings":";;;AA2CO,MAAMA,IAAiB,IAAIC,MAAkB;AAClD,QAAMC,IACJ,OAAOD,EAAO,CAAC,KAAM,YAAY,aAAaA,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAI,QAElEE,IAAWF,EAAO,CAAC,MACtB,OAAOA,EAAO,CAAC,KAAM,WAAWA,EAAO,CAAC,IAAI,CAAA,IACzC,EAAE,SAAAG,IAAU,GAAA,IAASD,GAErBE,IAAcC,EAAA;AAoEpB,MAlEAC,EAAU,MAAM;AACd,QAAI,CAACH,KAAY,CAACF,KAAU,CAACG,EAAY,MAAQ;AAEjD,UAAMG,IAAWN,IAASO,EAAWP,CAAM,IAAIG,EAAY;AAE3D,QAAI,CAACG,EAAS;AAEd,QAAIE,IAAmB,IACnBC,IAAc,GACdC,IAAgB;AAEpB,UAAMC,IAAwB,MAAM;AAClC,YAAM,EAAE,cAAAC,GAAc,cAAAC,GAAc,WAAAC,EAAA,IAAcR,GAC5CS,IAAkBH,IAAeC,GACjCG,IAAkBD,IAAkB;AAE1C,MAAID,IAAYJ,IAAeF,IAAmB,KACzCO,IAAkBD,KAAaE,MAAiBR,IAAmB,KAE5EE,IAAgBI;AAAA,IAAA,GAGZG,IAAU,CAACC,MAAsB;AACrC,MAAIA,EAAM,SAAS,IAAGV,IAAmB,KACpCG,EAAA;AAAA,IAAsB,GAGvBQ,IAAe,CAACD,MAAsB;AAC1C,MAAAT,IAAcS,EAAM,QAAQ,CAAC,EAAE;AAAA,IAAA,GAG3BE,IAAc,CAACF,MAAsB;AACzC,YAAMG,IAAYH,EAAM,QAAQ,CAAC,EAAE;AAGnC,MAFeT,IAAcY,IAEhB,IAAGb,IAAmB,KAC9BG,EAAA,GAELF,IAAcY;AAAA,IAAA,GAGVC,IAAa,MAAM;AACvB,MAAKd,KACLF,EAAQ,SAAS,EAAE,KAAKA,EAAQ,cAAc;AAAA,IAAA;AAGhD,IAAAA,EAAQ,iBAAiB,SAASW,CAAO,GACzCX,EAAQ,iBAAiB,cAAca,CAAY,GACnDb,EAAQ,iBAAiB,aAAac,CAAW;AAEjD,UAAMG,IAAW,IAAI,iBAAiBD,CAAU;AAEhD,WAAAC,EAAS,QAAQjB,GAAS;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,eAAe;AAAA,IAAA,CAChB,GAEM,MAAM;AACX,MAAAiB,EAAS,WAAA,GACTjB,EAAQ,oBAAoB,SAASW,CAAO,GAC5CX,EAAQ,oBAAoB,cAAca,CAAY,GACtDb,EAAQ,oBAAoB,aAAac,CAAW;AAAA,IAAA;AAAA,EACtD,GACC,CAAClB,GAASF,GAAQG,EAAY,KAAK,CAAC,GAEnC,CAAAH;AACJ,WAAOG;AACT;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { useState as r, useEffect as c } from "react";
|
|
2
|
-
const
|
|
3
|
-
const t = typeof navigator < "u" && "getBattery" in navigator && typeof navigator.getBattery == "function", [
|
|
4
|
-
loading:
|
|
2
|
+
const s = () => {
|
|
3
|
+
const t = typeof navigator < "u" && "getBattery" in navigator && typeof navigator.getBattery == "function", [i, a] = r({
|
|
4
|
+
loading: t,
|
|
5
5
|
level: 0,
|
|
6
6
|
charging: !1,
|
|
7
7
|
chargingTime: 0,
|
|
8
8
|
dischargingTime: 0
|
|
9
9
|
});
|
|
10
10
|
return c(() => {
|
|
11
|
-
if (!t) return
|
|
11
|
+
if (!t) return;
|
|
12
12
|
let e;
|
|
13
|
-
const n = () =>
|
|
13
|
+
const n = () => a({
|
|
14
14
|
loading: !1,
|
|
15
15
|
level: e?.level ?? 0,
|
|
16
16
|
charging: e?.charging ?? !1,
|
|
@@ -20,11 +20,11 @@ const h = () => {
|
|
|
20
20
|
return navigator.getBattery().then((g) => {
|
|
21
21
|
e = g, n(), e.addEventListener("levelchange", n), e.addEventListener("chargingchange", n), e.addEventListener("chargingtimechange", n), e.addEventListener("dischargingtimechange", n);
|
|
22
22
|
}), () => {
|
|
23
|
-
e && (e.removeEventListener("levelchange", n), e.removeEventListener("chargingchange", n), e.removeEventListener("chargingtimechange", n), e.removeEventListener("dischargingtimechange", n));
|
|
23
|
+
e && (console.log("unmount", e), e.removeEventListener("levelchange", n), e.removeEventListener("chargingchange", n), e.removeEventListener("chargingtimechange", n), e.removeEventListener("dischargingtimechange", n));
|
|
24
24
|
};
|
|
25
|
-
}, []), { supported: t, value:
|
|
25
|
+
}, []), { supported: t, value: i };
|
|
26
26
|
};
|
|
27
27
|
export {
|
|
28
|
-
|
|
28
|
+
s as useBattery
|
|
29
29
|
};
|
|
30
30
|
//# sourceMappingURL=useBattery.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBattery.mjs","sources":["../../../../src/hooks/useBattery/useBattery.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface BatteryManager extends EventTarget {\n charging: boolean;\n chargingTime: number;\n dischargingTime: number;\n level: number;\n}\n\ndeclare global {\n interface Navigator {\n readonly getBattery: () => Promise<BatteryManager>;\n }\n}\n\n/** The use battery value type */\nexport interface UseBatteryValue {\n /** Is charging battery? */\n charging: boolean;\n /** Time until the battery is fully charged */\n chargingTime: number;\n /** Time until the battery is completely discharged */\n dischargingTime: number;\n /** Battery charge level from 0 to 1 */\n level: number;\n /** Is battery information loading? */\n loading: boolean;\n}\n\n/** The use battery return type */\nexport interface UseBatteryStateReturn {\n /** Whether the battery api is supported*/\n supported: boolean;\n /** The use battery value type */\n value: UseBatteryValue;\n}\n\n/**\n * @name useBattery\n * @description - Hook for getting information about battery status\n * @category Browser\n *\n * @browserapi navigator.getBattery https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery\n *\n * @returns {UseBatteryStateReturn} Object containing battery information & Battery API support\n *\n * @example\n * const { supported, loading, charging, chargingTime, dischargingTime, level } = useBattery();\n */\nexport const useBattery = (): UseBatteryStateReturn => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'getBattery' in navigator &&\n typeof navigator.getBattery === 'function';\n const [value, setValue] = useState<UseBatteryValue>({\n loading:
|
|
1
|
+
{"version":3,"file":"useBattery.mjs","sources":["../../../../src/hooks/useBattery/useBattery.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface BatteryManager extends EventTarget {\n charging: boolean;\n chargingTime: number;\n dischargingTime: number;\n level: number;\n}\n\ndeclare global {\n interface Navigator {\n readonly getBattery: () => Promise<BatteryManager>;\n }\n}\n\n/** The use battery value type */\nexport interface UseBatteryValue {\n /** Is charging battery? */\n charging: boolean;\n /** Time until the battery is fully charged */\n chargingTime: number;\n /** Time until the battery is completely discharged */\n dischargingTime: number;\n /** Battery charge level from 0 to 1 */\n level: number;\n /** Is battery information loading? */\n loading: boolean;\n}\n\n/** The use battery return type */\nexport interface UseBatteryStateReturn {\n /** Whether the battery api is supported*/\n supported: boolean;\n /** The use battery value type */\n value: UseBatteryValue;\n}\n\n/**\n * @name useBattery\n * @description - Hook for getting information about battery status\n * @category Browser\n *\n * @browserapi navigator.getBattery https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery\n *\n * @returns {UseBatteryStateReturn} Object containing battery information & Battery API support\n *\n * @example\n * const { supported, loading, charging, chargingTime, dischargingTime, level } = useBattery();\n */\nexport const useBattery = (): UseBatteryStateReturn => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'getBattery' in navigator &&\n typeof navigator.getBattery === 'function';\n const [value, setValue] = useState<UseBatteryValue>({\n loading: supported,\n level: 0,\n charging: false,\n chargingTime: 0,\n dischargingTime: 0\n });\n\n useEffect(() => {\n if (!supported) return;\n\n let battery: BatteryManager | null;\n\n const onChange = () =>\n setValue({\n loading: false,\n level: battery?.level ?? 0,\n charging: battery?.charging ?? false,\n dischargingTime: battery?.dischargingTime ?? 0,\n chargingTime: battery?.chargingTime ?? 0\n });\n\n navigator.getBattery().then((batteryManager) => {\n battery = batteryManager;\n onChange();\n\n battery.addEventListener('levelchange', onChange);\n battery.addEventListener('chargingchange', onChange);\n battery.addEventListener('chargingtimechange', onChange);\n battery.addEventListener('dischargingtimechange', onChange);\n });\n\n return () => {\n if (!battery) return;\n console.log('unmount', battery);\n battery.removeEventListener('levelchange', onChange);\n battery.removeEventListener('chargingchange', onChange);\n battery.removeEventListener('chargingtimechange', onChange);\n battery.removeEventListener('dischargingtimechange', onChange);\n };\n }, []);\n\n return { supported, value };\n};\n"],"names":["useBattery","supported","value","setValue","useState","useEffect","battery","onChange","batteryManager"],"mappings":";AAiDO,MAAMA,IAAa,MAA6B;AACrD,QAAMC,IACJ,OAAO,YAAc,OACrB,gBAAgB,aAChB,OAAO,UAAU,cAAe,YAC5B,CAACC,GAAOC,CAAQ,IAAIC,EAA0B;AAAA,IAClD,SAASH;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,iBAAiB;AAAA,EAAA,CAClB;AAED,SAAAI,EAAU,MAAM;AACd,QAAI,CAACJ,EAAW;AAEhB,QAAIK;AAEJ,UAAMC,IAAW,MACfJ,EAAS;AAAA,MACP,SAAS;AAAA,MACT,OAAOG,GAAS,SAAS;AAAA,MACzB,UAAUA,GAAS,YAAY;AAAA,MAC/B,iBAAiBA,GAAS,mBAAmB;AAAA,MAC7C,cAAcA,GAAS,gBAAgB;AAAA,IAAA,CACxC;AAEH,qBAAU,WAAA,EAAa,KAAK,CAACE,MAAmB;AAC9C,MAAAF,IAAUE,GACVD,EAAA,GAEAD,EAAQ,iBAAiB,eAAeC,CAAQ,GAChDD,EAAQ,iBAAiB,kBAAkBC,CAAQ,GACnDD,EAAQ,iBAAiB,sBAAsBC,CAAQ,GACvDD,EAAQ,iBAAiB,yBAAyBC,CAAQ;AAAA,IAAA,CAC3D,GAEM,MAAM;AACX,MAAKD,MACL,QAAQ,IAAI,WAAWA,CAAO,GAC9BA,EAAQ,oBAAoB,eAAeC,CAAQ,GACnDD,EAAQ,oBAAoB,kBAAkBC,CAAQ,GACtDD,EAAQ,oBAAoB,sBAAsBC,CAAQ,GAC1DD,EAAQ,oBAAoB,yBAAyBC,CAAQ;AAAA,IAAA;AAAA,EAC/D,GACC,EAAE,GAEE,EAAE,WAAAN,GAAW,OAAAC,EAAA;AACtB;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useState as n, useRef as p, useEffect as L } from "react";
|
|
2
|
+
const w = (s, d) => {
|
|
3
|
+
const o = typeof window < "u" && "BroadcastChannel" in window, [i, c] = n(!1), [l, f] = n(), [v, E] = n(), e = p(void 0);
|
|
4
|
+
L(() => {
|
|
5
|
+
if (!o) return;
|
|
6
|
+
e.current = new BroadcastChannel(s);
|
|
7
|
+
const r = (t) => {
|
|
8
|
+
f(t.data), d?.(t.data);
|
|
9
|
+
}, a = (t) => E(t), u = () => c(!0);
|
|
10
|
+
return e.current.addEventListener("message", r), e.current.addEventListener("messageerror", a), e.current.addEventListener("close", u), () => {
|
|
11
|
+
e.current && (e.current.removeEventListener("message", r), e.current.removeEventListener("messageerror", a), e.current.removeEventListener("close", u), e.current.close());
|
|
12
|
+
};
|
|
13
|
+
}, [s]);
|
|
14
|
+
const g = (r) => {
|
|
15
|
+
console.log("post", r, e.current), e.current && e.current.postMessage(r);
|
|
16
|
+
}, m = () => {
|
|
17
|
+
e.current && (e.current.close(), c(!0));
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
supported: o,
|
|
21
|
+
channel: e.current,
|
|
22
|
+
data: l,
|
|
23
|
+
post: g,
|
|
24
|
+
close: m,
|
|
25
|
+
error: v,
|
|
26
|
+
closed: i
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
w as useBroadcastChannel
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=useBroadcastChannel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBroadcastChannel.mjs","sources":["../../../../src/hooks/useBroadcastChannel/useBroadcastChannel.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** The use broadcast channel return type */\nexport interface UseBroadcastChannelReturn<Data = unknown> {\n /** The underlying BroadcastChannel instance if supported, undefined otherwise */\n channel?: BroadcastChannel;\n /** Whether the channel has been closed */\n closed: boolean;\n /** The most recently received data from other contexts */\n data?: Data;\n /** Error object if any error occurred during channel operations */\n error?: Event;\n /** Whether the BroadcastChannel API is supported in the current environment */\n supported: boolean;\n /** Function to close the channel and clean up resources */\n close: () => void;\n /** Function to send data to other contexts through the channel */\n post: (data: Data) => void;\n}\n\n/**\n * @name useBroadcastChannel\n * @description Hook that provides cross-tab/window communication\n * @category Browser\n *\n * @browserapi BroadcastChannel https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n *\n * @param {string} name The name of the channel\n * @param {Function} callback A callback function that will be called when a message is received\n * @returns {UseBroadcastChannelReturn} An object containing the channel state and controls\n *\n * @example\n * const { supported, data, post, error } = useBroadcastChannel('channel');\n */\nexport const useBroadcastChannel = <Data = unknown>(\n name: string,\n callback?: (data: Data) => void\n): UseBroadcastChannelReturn<Data> => {\n const supported = typeof window !== 'undefined' && 'BroadcastChannel' in window;\n\n const [closed, setClosed] = useState(false);\n const [data, setData] = useState<Data>();\n const [error, setError] = useState<MessageEvent>();\n const channelRef = useRef<BroadcastChannel>(undefined);\n\n useEffect(() => {\n if (!supported) return;\n\n channelRef.current = new BroadcastChannel(name);\n\n const onMessage = (event: MessageEvent) => {\n setData(event.data);\n callback?.(event.data);\n };\n const onMessageError = (event: MessageEvent) => setError(event);\n const onClose = () => setClosed(true);\n\n channelRef.current.addEventListener('message', onMessage);\n channelRef.current.addEventListener('messageerror', onMessageError);\n channelRef.current.addEventListener('close', onClose);\n\n return () => {\n if (channelRef.current) {\n channelRef.current.removeEventListener('message', onMessage);\n channelRef.current.removeEventListener('messageerror', onMessageError);\n channelRef.current.removeEventListener('close', onClose);\n channelRef.current.close();\n }\n };\n }, [name]);\n\n const post = (data: Data) => {\n console.log('post', data, channelRef.current);\n if (!channelRef.current) return;\n channelRef.current.postMessage(data);\n };\n\n const close = () => {\n if (!channelRef.current) return;\n channelRef.current.close();\n setClosed(true);\n };\n\n return {\n supported,\n channel: channelRef.current,\n data,\n post,\n close,\n error,\n closed\n };\n};\n"],"names":["useBroadcastChannel","name","callback","supported","closed","setClosed","useState","data","setData","error","setError","channelRef","useRef","useEffect","onMessage","event","onMessageError","onClose","post","close"],"mappings":";AAkCO,MAAMA,IAAsB,CACjCC,GACAC,MACoC;AACpC,QAAMC,IAAY,OAAO,SAAW,OAAe,sBAAsB,QAEnE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAMC,CAAO,IAAIF,EAAA,GAClB,CAACG,GAAOC,CAAQ,IAAIJ,EAAA,GACpBK,IAAaC,EAAyB,MAAS;AAErD,EAAAC,EAAU,MAAM;AACd,QAAI,CAACV,EAAW;AAEhB,IAAAQ,EAAW,UAAU,IAAI,iBAAiBV,CAAI;AAE9C,UAAMa,IAAY,CAACC,MAAwB;AACzC,MAAAP,EAAQO,EAAM,IAAI,GAClBb,IAAWa,EAAM,IAAI;AAAA,IAAA,GAEjBC,IAAiB,CAACD,MAAwBL,EAASK,CAAK,GACxDE,IAAU,MAAMZ,EAAU,EAAI;AAEpC,WAAAM,EAAW,QAAQ,iBAAiB,WAAWG,CAAS,GACxDH,EAAW,QAAQ,iBAAiB,gBAAgBK,CAAc,GAClEL,EAAW,QAAQ,iBAAiB,SAASM,CAAO,GAE7C,MAAM;AACX,MAAIN,EAAW,YACbA,EAAW,QAAQ,oBAAoB,WAAWG,CAAS,GAC3DH,EAAW,QAAQ,oBAAoB,gBAAgBK,CAAc,GACrEL,EAAW,QAAQ,oBAAoB,SAASM,CAAO,GACvDN,EAAW,QAAQ,MAAA;AAAA,IACrB;AAAA,EACF,GACC,CAACV,CAAI,CAAC;AAET,QAAMiB,IAAO,CAACX,MAAe;AAE3B,IADA,QAAQ,IAAI,QAAQA,GAAMI,EAAW,OAAO,GACvCA,EAAW,WAChBA,EAAW,QAAQ,YAAYJ,CAAI;AAAA,EAAA,GAG/BY,IAAQ,MAAM;AAClB,IAAKR,EAAW,YAChBA,EAAW,QAAQ,MAAA,GACnBN,EAAU,EAAI;AAAA,EAAA;AAGhB,SAAO;AAAA,IACL,WAAAF;AAAA,IACA,SAASQ,EAAW;AAAA,IACpB,MAAAJ;AAAA,IACA,MAAAW;AAAA,IACA,OAAAC;AAAA,IACA,OAAAV;AAAA,IACA,QAAAL;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,40 +1,38 @@
|
|
|
1
|
-
import { useState as v, useRef as
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import { isTarget as
|
|
4
|
-
import { getElement as
|
|
5
|
-
const T = (...
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const n = e ? f(e) : r.current;
|
|
9
|
-
n && (l(!1), n.srcObject = null, t.current.getTracks().forEach((i) => i.stop()), t.current = null);
|
|
1
|
+
import { useState as v, useRef as l, useEffect as p } from "react";
|
|
2
|
+
import { useRefState as y } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { isTarget as D } from "../../utils/helpers/isTarget.mjs";
|
|
4
|
+
import { getElement as R } from "../../utils/helpers/getElement.mjs";
|
|
5
|
+
const T = (...r) => {
|
|
6
|
+
const n = typeof navigator < "u" && "mediaDevices" in navigator && !!navigator.mediaDevices && "getDisplayMedia" in navigator.mediaDevices, i = D(r[0]) ? r[0] : void 0, c = r[1] ? r[1] : r[0], m = c?.immediately ?? !1, [f, d] = v(!1), s = l(null), t = l(null), a = y(), o = () => {
|
|
7
|
+
!t.current || !n || !s.current || (d(!1), s.current.srcObject = null, t.current.getTracks().forEach((e) => e.stop()), t.current = null);
|
|
10
8
|
}, u = async () => {
|
|
11
|
-
if (!
|
|
12
|
-
const
|
|
13
|
-
if (!n) return;
|
|
14
|
-
const i = await navigator.mediaDevices.getDisplayMedia({
|
|
9
|
+
if (!n || !s.current) return;
|
|
10
|
+
const e = await navigator.mediaDevices.getDisplayMedia({
|
|
15
11
|
video: c?.video,
|
|
16
12
|
audio: c?.audio
|
|
17
13
|
});
|
|
18
|
-
return
|
|
14
|
+
return d(!0), t.current = e, s.current.srcObject = e, e.getTracks().forEach((g) => g.onended = o), e;
|
|
19
15
|
};
|
|
20
|
-
return
|
|
21
|
-
if (!
|
|
16
|
+
return p(() => {
|
|
17
|
+
if (!n || !i && !a.state) return;
|
|
18
|
+
const e = i ? R(i) : a.current;
|
|
19
|
+
if (e && (s.current = e, !!m))
|
|
22
20
|
return u(), () => {
|
|
23
|
-
|
|
21
|
+
o();
|
|
24
22
|
};
|
|
25
|
-
}, [
|
|
23
|
+
}, [i, a.state]), i ? {
|
|
26
24
|
stream: t.current,
|
|
27
|
-
sharing:
|
|
28
|
-
supported:
|
|
25
|
+
sharing: f,
|
|
26
|
+
supported: n,
|
|
29
27
|
start: u,
|
|
30
|
-
stop:
|
|
28
|
+
stop: o
|
|
31
29
|
} : {
|
|
32
30
|
stream: t.current,
|
|
33
|
-
sharing:
|
|
34
|
-
supported:
|
|
31
|
+
sharing: f,
|
|
32
|
+
supported: n,
|
|
35
33
|
start: u,
|
|
36
|
-
stop:
|
|
37
|
-
ref:
|
|
34
|
+
stop: o,
|
|
35
|
+
ref: a
|
|
38
36
|
};
|
|
39
37
|
};
|
|
40
38
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDisplayMedia.mjs","sources":["../../../../src/hooks/useDisplayMedia/useDisplayMedia.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use display media return type */\nexport interface UseDisplayMediaReturn {\n /** Whether screen sharing is currently active */\n sharing: boolean;\n /** The media stream object */\n stream: MediaStream | null;\n /** Whether the display media API is supported */\n supported: boolean;\n /** Start screen sharing */\n start: () => Promise<void>;\n /** Stop screen sharing */\n stop: () => void;\n}\n\n/** The use display media options type */\nexport interface UseDisplayMediaOptions {\n /** Whether to enable audio sharing */\n audio?: boolean | MediaTrackConstraints;\n /** Whether to start immediately */\n immediately?: boolean;\n /** Whether to enable video sharing */\n video?: boolean | MediaTrackConstraints;\n}\n\nexport interface UseDisplayMedia {\n (target: HookTarget, options?: UseDisplayMediaOptions): UseDisplayMediaReturn;\n\n <Target extends HTMLVideoElement>(\n options?: UseDisplayMediaOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseDisplayMediaReturn;\n}\n\n/**\n * @name useDisplayMedia\n * @description - Hook that provides screen sharing functionality\n * @category Browser\n *\n * @browserapi mediaDevices.getDisplayMedia https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n *\n * @overload\n * @param {HookTarget} target The target video element to display the media stream\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn} Object containing stream, sharing status and control methods\n *\n * @example\n * const { stream, sharing, start, stop } = useDisplayMedia(ref);\n *\n * @overload\n * @template Target The target video element\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn & { ref: StateRef<HTMLVideoElement> }} Object containing stream, sharing status, control methods and ref\n *\n * @example\n * const { ref, stream, sharing, start, stop } = useDisplayMedia<HTMLVideoElement>();\n */\nexport const useDisplayMedia = ((...params: any[]) => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n !!navigator.mediaDevices &&\n 'getDisplayMedia' in navigator.mediaDevices;\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (params[1] ? params[1] : params[0]) as UseDisplayMediaOptions | undefined;\n const immediately = options?.immediately ?? false;\n\n const [sharing, setSharing] = useState(false);\n\n const streamRef = useRef<MediaStream | null>(null);\n const internalRef = useRefState<Element>();\n\n const stop = () => {\n if (!streamRef.current || !supported
|
|
1
|
+
{"version":3,"file":"useDisplayMedia.mjs","sources":["../../../../src/hooks/useDisplayMedia/useDisplayMedia.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use display media return type */\nexport interface UseDisplayMediaReturn {\n /** Whether screen sharing is currently active */\n sharing: boolean;\n /** The media stream object */\n stream: MediaStream | null;\n /** Whether the display media API is supported */\n supported: boolean;\n /** Start screen sharing */\n start: () => Promise<void>;\n /** Stop screen sharing */\n stop: () => void;\n}\n\n/** The use display media options type */\nexport interface UseDisplayMediaOptions {\n /** Whether to enable audio sharing */\n audio?: boolean | MediaTrackConstraints;\n /** Whether to start immediately */\n immediately?: boolean;\n /** Whether to enable video sharing */\n video?: boolean | MediaTrackConstraints;\n}\n\nexport interface UseDisplayMedia {\n (target: HookTarget, options?: UseDisplayMediaOptions): UseDisplayMediaReturn;\n\n <Target extends HTMLVideoElement>(\n options?: UseDisplayMediaOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseDisplayMediaReturn;\n}\n\n/**\n * @name useDisplayMedia\n * @description - Hook that provides screen sharing functionality\n * @category Browser\n *\n * @browserapi mediaDevices.getDisplayMedia https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n *\n * @overload\n * @param {HookTarget} target The target video element to display the media stream\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn} Object containing stream, sharing status and control methods\n *\n * @example\n * const { stream, sharing, start, stop } = useDisplayMedia(ref);\n *\n * @overload\n * @template Target The target video element\n * @param {boolean | MediaTrackConstraints} [options.audio] Whether to enable audio sharing\n * @param {boolean} [options.immediately=false] Whether to start immediately\n * @param {boolean | MediaTrackConstraints} [options.video] Whether to enable video sharing\n * @returns {UseDisplayMediaReturn & { ref: StateRef<HTMLVideoElement> }} Object containing stream, sharing status, control methods and ref\n *\n * @example\n * const { ref, stream, sharing, start, stop } = useDisplayMedia<HTMLVideoElement>();\n */\nexport const useDisplayMedia = ((...params: any[]) => {\n const supported =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n !!navigator.mediaDevices &&\n 'getDisplayMedia' in navigator.mediaDevices;\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (params[1] ? params[1] : params[0]) as UseDisplayMediaOptions | undefined;\n const immediately = options?.immediately ?? false;\n\n const [sharing, setSharing] = useState(false);\n\n const elementRef = useRef<HTMLVideoElement | null>(null);\n const streamRef = useRef<MediaStream | null>(null);\n const internalRef = useRefState<Element>();\n\n const stop = () => {\n if (!streamRef.current || !supported || !elementRef.current) return;\n\n setSharing(false);\n elementRef.current.srcObject = null;\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n };\n\n const start = async () => {\n if (!supported || !elementRef.current) return;\n\n const displayMedia = await navigator.mediaDevices.getDisplayMedia({\n video: options?.video,\n audio: options?.audio\n });\n\n setSharing(true);\n streamRef.current = displayMedia;\n elementRef.current.srcObject = displayMedia;\n\n displayMedia.getTracks().forEach((track) => (track.onended = stop));\n return displayMedia;\n };\n\n useEffect(() => {\n if (!supported || (!target && !internalRef.state)) return;\n\n const element = (target ? getElement(target) : internalRef.current) as HTMLVideoElement;\n\n if (!element) return;\n\n elementRef.current = element;\n\n if (!immediately) return;\n\n start();\n\n return () => {\n stop();\n };\n }, [target, internalRef.state]);\n\n if (target)\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop\n };\n\n return {\n stream: streamRef.current,\n sharing,\n supported,\n start,\n stop,\n ref: internalRef\n };\n}) as UseDisplayMedia;\n"],"names":["useDisplayMedia","params","supported","target","isTarget","options","immediately","sharing","setSharing","useState","elementRef","useRef","streamRef","internalRef","useRefState","stop","track","start","displayMedia","useEffect","element","getElement"],"mappings":";;;;AAsEO,MAAMA,IAAmB,IAAIC,MAAkB;AACpD,QAAMC,IACJ,OAAO,YAAc,OACrB,kBAAkB,aAClB,CAAC,CAAC,UAAU,gBACZ,qBAAqB,UAAU,cAC3BC,IAAUC,EAASH,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC5CI,IAAWJ,EAAO,CAAC,IAAIA,EAAO,CAAC,IAAIA,EAAO,CAAC,GAC3CK,IAAcD,GAAS,eAAe,IAEtC,CAACE,GAASC,CAAU,IAAIC,EAAS,EAAK,GAEtCC,IAAaC,EAAgC,IAAI,GACjDC,IAAYD,EAA2B,IAAI,GAC3CE,IAAcC,EAAA,GAEdC,IAAO,MAAM;AACjB,IAAI,CAACH,EAAU,WAAW,CAACV,KAAa,CAACQ,EAAW,YAEpDF,EAAW,EAAK,GAChBE,EAAW,QAAQ,YAAY,MAC/BE,EAAU,QAAQ,YAAY,QAAQ,CAACI,MAAUA,EAAM,MAAM,GAC7DJ,EAAU,UAAU;AAAA,EAAA,GAGhBK,IAAQ,YAAY;AACxB,QAAI,CAACf,KAAa,CAACQ,EAAW,QAAS;AAEvC,UAAMQ,IAAe,MAAM,UAAU,aAAa,gBAAgB;AAAA,MAChE,OAAOb,GAAS;AAAA,MAChB,OAAOA,GAAS;AAAA,IAAA,CACjB;AAED,WAAAG,EAAW,EAAI,GACfI,EAAU,UAAUM,GACpBR,EAAW,QAAQ,YAAYQ,GAE/BA,EAAa,YAAY,QAAQ,CAACF,MAAWA,EAAM,UAAUD,CAAK,GAC3DG;AAAA,EAAA;AAqBT,SAlBAC,EAAU,MAAM;AACd,QAAI,CAACjB,KAAc,CAACC,KAAU,CAACU,EAAY,MAAQ;AAEnD,UAAMO,IAAWjB,IAASkB,EAAWlB,CAAM,IAAIU,EAAY;AAE3D,QAAKO,MAELV,EAAW,UAAUU,GAEjB,EAACd;AAEL,aAAAW,EAAA,GAEO,MAAM;AACX,QAAAF,EAAA;AAAA,MAAK;AAAA,EACP,GACC,CAACZ,GAAQU,EAAY,KAAK,CAAC,GAE1BV,IACK;AAAA,IACL,QAAQS,EAAU;AAAA,IAClB,SAAAL;AAAA,IACA,WAAAL;AAAA,IACA,OAAAe;AAAA,IACA,MAAAF;AAAA,EAAA,IAGG;AAAA,IACL,QAAQH,EAAU;AAAA,IAClB,SAAAL;AAAA,IACA,WAAAL;AAAA,IACA,OAAAe;AAAA,IACA,MAAAF;AAAA,IACA,KAAKF;AAAA,EAAA;AAET;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { useRef as u, useCallback as
|
|
2
|
-
const
|
|
1
|
+
import { useRef as u, useCallback as o } from "react";
|
|
2
|
+
const c = (e) => {
|
|
3
3
|
const r = u(e);
|
|
4
|
-
return r.current = e,
|
|
5
|
-
const
|
|
6
|
-
return
|
|
4
|
+
return r.current = e, o((...n) => {
|
|
5
|
+
const t = r.current;
|
|
6
|
+
return t(...n);
|
|
7
7
|
}, []);
|
|
8
8
|
};
|
|
9
9
|
export {
|
|
10
|
-
|
|
10
|
+
c as useEvent
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=useEvent.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEvent.mjs","sources":["../../../../src/hooks/useEvent/useEvent.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\n/**\n * @name useEvent\n * @description - Hook that creates an event and returns a stable reference of it\n * @category Browser\n *\n * @template Params The type of the params\n * @template Return The type of the return\n * @param {(...args: Params) => Return} callback The callback function\n * @returns {(...args: Params) => Return} The callback\n *\n * @example\n * const onClick = useEvent(() => console.log('clicked'));\n */\nexport const useEvent = <Params extends unknown[], Return>(\n callback: (...args: Params) => Return\n): ((...args: Params) => Return) => {\n const
|
|
1
|
+
{"version":3,"file":"useEvent.mjs","sources":["../../../../src/hooks/useEvent/useEvent.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\n/**\n * @name useEvent\n * @description - Hook that creates an event and returns a stable reference of it\n * @category Browser\n *\n * @template Params The type of the params\n * @template Return The type of the return\n * @param {(...args: Params) => Return} callback The callback function\n * @returns {(...args: Params) => Return} The callback\n *\n * @example\n * const onClick = useEvent(() => console.log('clicked'));\n */\nexport const useEvent = <Params extends unknown[], Return>(\n callback: (...args: Params) => Return\n): ((...args: Params) => Return) => {\n const internalCallbackRef = useRef<typeof callback>(callback);\n internalCallbackRef.current = callback;\n\n return useCallback((...args) => {\n const fn = internalCallbackRef.current;\n return fn(...args);\n }, []);\n};\n"],"names":["useEvent","callback","internalCallbackRef","useRef","useCallback","args","fn"],"mappings":";AAeO,MAAMA,IAAW,CACtBC,MACkC;AAClC,QAAMC,IAAsBC,EAAwBF,CAAQ;AAC5D,SAAAC,EAAoB,UAAUD,GAEvBG,EAAY,IAAIC,MAAS;AAC9B,UAAMC,IAAKJ,EAAoB;AAC/B,WAAOI,EAAG,GAAGD,CAAI;AAAA,EAAA,GAChB,EAAE;AACP;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyPress.mjs","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The key or keys to listen for */\nexport type UseKeyPressKey = string | string[];\n\n/** The callback function to be invoked when key is pressed */\nexport type UseKeyPressCallback = (pressed: boolean, event: KeyboardEvent) => void;\n\nexport interface UseKeyPress {\n (target: HookTarget | Window, key: UseKeyPressKey, callback?: UseKeyPressCallback): boolean;\n\n <Target extends Element>(\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback,\n target?: never\n ): { pressed: boolean; ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} [target=window] The target to attach the event listeners to\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {boolean} The pressed state of the key\n *\n * @example\n * const isKeyPressed = useKeyPress('a'
|
|
1
|
+
{"version":3,"file":"useKeyPress.mjs","sources":["../../../../src/hooks/useKeyPress/useKeyPress.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The key or keys to listen for */\nexport type UseKeyPressKey = string | string[];\n\n/** The callback function to be invoked when key is pressed */\nexport type UseKeyPressCallback = (pressed: boolean, event: KeyboardEvent) => void;\n\nexport interface UseKeyPress {\n (target: HookTarget | Window, key: UseKeyPressKey, callback?: UseKeyPressCallback): boolean;\n\n <Target extends Element>(\n key: UseKeyPressKey,\n callback?: UseKeyPressCallback,\n target?: never\n ): { pressed: boolean; ref: StateRef<Target> };\n}\n\n/**\n * @name useKeyPress\n * @description - Hook that listens for key press events\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} [target=window] The target to attach the event listeners to\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {boolean} The pressed state of the key\n *\n * @example\n * const isKeyPressed = useKeyPress(ref, 'a');\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyPressKey} key The key or keys to listen for\n * @param {(pressed: boolean, event: KeyboardEvent) => void} [callback] Callback function invoked when key is pressed\n * @returns {{ pressed: boolean; ref: StateRef<Target> }} An object containing the pressed state and ref\n *\n * @example\n * const { pressed, ref } = useKeyPress('a');\n */\nexport const useKeyPress = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const key = (target ? params[1] : params[0]) as UseKeyPressKey;\n const callback = (target ? params[2] : params[1]) as UseKeyPressCallback | undefined;\n\n const [pressed, setPressed] = useState(false);\n const internalRef = useRefState(window);\n\n const keyRef = useRef(key);\n keyRef.current = key;\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (\n Array.isArray(keyRef.current)\n ? keyRef.current.includes(keyboardEvent.key)\n : keyboardEvent.key === keyRef.current\n ) {\n setPressed(true);\n internalCallbackRef.current?.(true, keyboardEvent);\n }\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (\n Array.isArray(keyRef.current)\n ? keyRef.current.includes(keyboardEvent.key)\n : keyboardEvent.key === keyRef.current\n ) {\n setPressed(false);\n internalCallbackRef.current?.(false, keyboardEvent);\n }\n };\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [target, internalRef.state]);\n\n if (target) return pressed;\n return { pressed, ref: internalRef };\n}) as UseKeyPress;\n"],"names":["useKeyPress","params","target","isTarget","key","callback","pressed","setPressed","useState","internalRef","useRefState","keyRef","useRef","internalCallbackRef","useEffect","element","getElement","onKeyDown","event","keyboardEvent","onKeyUp"],"mappings":";;;;AAiDO,MAAMA,IAAe,IAAIC,MAAkB;AAChD,QAAMC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IAAOF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GACpCI,IAAYH,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,GAEzC,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAcC,EAAY,MAAM,GAEhCC,IAASC,EAAOR,CAAG;AACzB,EAAAO,EAAO,UAAUP;AACjB,QAAMS,IAAsBD,EAAOP,CAAQ;AA0C3C,SAzCAQ,EAAoB,UAAUR,GAE9BS,EAAU,MAAM;AACd,QAAI,CAACZ,KAAU,CAACO,EAAY,MAAO;AAEnC,UAAMM,IAAWb,IAASc,EAAWd,CAAM,IAAIO,EAAY;AAC3D,QAAI,CAACM,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AACtB,OACE,MAAM,QAAQP,EAAO,OAAO,IACxBA,EAAO,QAAQ,SAASQ,EAAc,GAAG,IACzCA,EAAc,QAAQR,EAAO,aAEjCJ,EAAW,EAAI,GACfM,EAAoB,UAAU,IAAMM,CAAa;AAAA,IACnD,GAGIC,IAAU,CAACF,MAAiB;AAChC,YAAMC,IAAgBD;AACtB,OACE,MAAM,QAAQP,EAAO,OAAO,IACxBA,EAAO,QAAQ,SAASQ,EAAc,GAAG,IACzCA,EAAc,QAAQR,EAAO,aAEjCJ,EAAW,EAAK,GAChBM,EAAoB,UAAU,IAAOM,CAAa;AAAA,IACpD;AAGF,WAAAJ,EAAQ,iBAAiB,WAAWE,CAAS,GAC7CF,EAAQ,iBAAiB,SAASK,CAAO,GAElC,MAAM;AACX,MAAAL,EAAQ,oBAAoB,WAAWE,CAAS,GAChDF,EAAQ,oBAAoB,SAASK,CAAO;AAAA,IAAA;AAAA,EAC9C,GACC,CAAClB,GAAQO,EAAY,KAAK,CAAC,GAE1BP,IAAeI,IACZ,EAAE,SAAAA,GAAS,KAAKG,EAAA;AACzB;"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { useEffect as
|
|
2
|
-
import { useRefState as
|
|
3
|
-
import { isTarget as
|
|
4
|
-
import { getElement as
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
if (
|
|
8
|
-
if (!
|
|
9
|
-
const
|
|
10
|
-
if (!
|
|
11
|
-
const
|
|
12
|
-
return
|
|
13
|
-
|
|
1
|
+
import { useRef as s, useEffect as y } from "react";
|
|
2
|
+
import { useRefState as d } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { isTarget as w } from "../../utils/helpers/isTarget.mjs";
|
|
4
|
+
import { getElement as v } from "../../utils/helpers/getElement.mjs";
|
|
5
|
+
const k = (...e) => {
|
|
6
|
+
const t = w(e[0]) ? e[0] : void 0, c = t ? typeof e[1] == "object" ? e[1] : { onKeyDown: e[1] } : typeof e[0] == "object" ? e[0] : { onKeyDown: e[0] }, o = d(window), r = s(c);
|
|
7
|
+
if (r.current = c, y(() => {
|
|
8
|
+
if (!t && !o.state) return;
|
|
9
|
+
const n = t ? v(t) : o.current;
|
|
10
|
+
if (!n) return;
|
|
11
|
+
const f = (i) => r.current?.onKeyDown?.(i), u = (i) => r.current?.onKeyUp?.(i);
|
|
12
|
+
return n.addEventListener("keydown", f), n.addEventListener("keyup", u), () => {
|
|
13
|
+
n.removeEventListener("keydown", f), n.removeEventListener("keyup", u);
|
|
14
14
|
};
|
|
15
|
-
}, [
|
|
15
|
+
}, [t, o.state]), !t)
|
|
16
16
|
return o;
|
|
17
17
|
};
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
k as useKeyboard
|
|
20
20
|
};
|
|
21
21
|
//# sourceMappingURL=useKeyboard.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboard.mjs","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The keyboard event handler type */\nexport type KeyboardEventHandler = (event: KeyboardEvent) => void;\n\n/** The use keyboard options type */\nexport interface
|
|
1
|
+
{"version":3,"file":"useKeyboard.mjs","sources":["../../../../src/hooks/useKeyboard/useKeyboard.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keyboard event handler type */\nexport type KeyboardEventHandler = (event: KeyboardEvent) => void;\n\n/** The use keyboard event options type */\nexport interface UseKeyboardEventOptions {\n /** The callback function to be invoked on key down */\n onKeyDown?: KeyboardEventHandler;\n /** The callback function to be invoked on key up */\n onKeyUp?: KeyboardEventHandler;\n}\n\nexport interface UseKeyboard {\n (target: HookTarget, callback: KeyboardEventHandler): void;\n\n (target: HookTarget, options: UseKeyboardEventOptions): void;\n\n <Target extends HTMLElement>(\n callback: KeyboardEventHandler,\n target?: never\n ): { ref: StateRef<Target> };\n\n <Target extends HTMLElement>(\n options: UseKeyboardEventOptions,\n target?: never\n ): {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useKeyboard\n * @description - Hook that helps to listen for keyboard events\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target to attach the event listeners to\n * @param {KeyboardEventHandler} callback The callback function to be invoked on key down\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, (event) => console.log('key down'));\n *\n * @overload\n * @param {HookTarget} target The target to attach the event listeners to\n * @param {UseKeyboardEventOptions} [options] The keyboard event options\n * @returns {void}\n *\n * @example\n * useKeyboard(ref, { onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n *\n * @overload\n * @template Target The target element type\n * @param {KeyboardEventHandler} callback The callback function to be invoked on key down\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyboard((event) => console.log('key down'));\n *\n * @overload\n * @template Target The target element type\n * @param {UseKeyboardEventOptions} [options] The keyboard event options\n * @returns {{ ref: StateRef<Target> }} An object containing the ref\n *\n * @example\n * const ref = useKeyboard({ onKeyDown: (event) => console.log('key down'), onKeyUp: (event) => console.log('key up') });\n */\nexport const useKeyboard = ((...params: any[]) => {\n const target = isTarget(params[0]) ? params[0] : undefined;\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onKeyDown: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onKeyDown: params[0] }\n ) as UseKeyboardEventOptions;\n\n const internalRef = useRefState(window);\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = (target ? getElement(target) : internalRef.current) as HTMLElement;\n if (!element) return;\n\n const onKeyDown = (event: Event) =>\n internalOptionsRef.current?.onKeyDown?.(event as KeyboardEvent);\n const onKeyUp = (event: Event) => internalOptionsRef.current?.onKeyUp?.(event as KeyboardEvent);\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [target, internalRef.state]);\n\n if (target) return;\n return internalRef;\n}) as UseKeyboard;\n"],"names":["useKeyboard","params","target","isTarget","options","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","getElement","onKeyDown","event","onKeyUp"],"mappings":";;;;AA4EO,MAAMA,IAAe,IAAIC,MAAkB;AAChD,QAAMC,IAASC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAC3CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,WAAWA,EAAO,CAAC,EAAA,IACvB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,WAAWA,EAAO,CAAC,EAAA,GAGvBI,IAAcC,EAAY,MAAM,GAChCC,IAAqBC,EAAOJ,CAAO;AAsBzC,MArBAG,EAAmB,UAAUH,GAE7BK,EAAU,MAAM;AACd,QAAI,CAACP,KAAU,CAACG,EAAY,MAAO;AAEnC,UAAMK,IAAWR,IAASS,EAAWT,CAAM,IAAIG,EAAY;AAC3D,QAAI,CAACK,EAAS;AAEd,UAAME,IAAY,CAACC,MACjBN,EAAmB,SAAS,YAAYM,CAAsB,GAC1DC,IAAU,CAACD,MAAiBN,EAAmB,SAAS,UAAUM,CAAsB;AAE9F,WAAAH,EAAQ,iBAAiB,WAAWE,CAAS,GAC7CF,EAAQ,iBAAiB,SAASI,CAAO,GAElC,MAAM;AACX,MAAAJ,EAAQ,oBAAoB,WAAWE,CAAS,GAChDF,EAAQ,oBAAoB,SAASI,CAAO;AAAA,IAAA;AAAA,EAC9C,GACC,CAACZ,GAAQG,EAAY,KAAK,CAAC,GAE1B,CAAAH;AACJ,WAAOG;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeysPressed.mjs","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keys pressed options type */\nexport interface UseKeysPressedOptions {\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\nexport interface UseKeysPressed {\n (\n target: HookTarget | Window,\n options?: UseKeysPressedOptions\n ): Array<{
|
|
1
|
+
{"version":3,"file":"useKeysPressed.mjs","sources":["../../../../src/hooks/useKeysPressed/useKeysPressed.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use keys pressed options type */\nexport interface UseKeysPressedOptions {\n /** Enable or disable the event listeners */\n enabled?: boolean;\n}\n\nexport interface UseKeysPressed {\n (\n target: HookTarget | Window,\n options?: UseKeysPressedOptions\n ): Array<{\n key: string;\n code: string;\n }>;\n\n <Target extends Element>(\n options?: UseKeysPressedOptions\n ): {\n value: Array<{ key: string; code: string }>;\n ref: StateRef<Target>;\n };\n}\n\n/**\n * Hook that tracks which keyboard keys are currently pressed\n *\n * @name useKeysPressed\n * @description Tracks all currently pressed keyboard keys and their codes\n * @category Sensors\n *\n * @overload\n * @param {HookTarget | Window} target DOM element or ref to attach keyboard listeners to\n * @param {UseKeysPressedOptions} [options.enabled=true] Enable or disable the event listeners\n * @returns {Array<{ key: string; code: string }>} Array of currently pressed keys with their key and code values\n *\n * @example\n * const pressedKeys = useKeysPressed(ref);\n *\n * @overload\n * @template Target - Type of the target DOM element\n * @param {UseKeysPressedOptions} [options] - Optional configuration options\n * @returns {{ keys: Array<{ key: string; code: string }>; ref: StateRef<Target> }} Object containing pressed keys array and ref to attach to a DOM element\n *\n * @example\n * const { value, ref } = useKeysPressed();\n */\nexport const useKeysPressed = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n const options = (target ? params[1] : params[0]) as UseKeysPressedOptions | undefined;\n\n const enabled = options?.enabled ?? true;\n const [value, setValue] = useState<{ key: string; code: string }[]>([]);\n const internalRef = useRefState(window);\n\n useEffect(() => {\n if (!enabled) return;\n setValue([]);\n\n const element = (target ? getElement(target) : internalRef.current) as Element;\n if (!element) return;\n\n const onKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => {\n if (prevValue.some(({ code }) => code === keyboardEvent.code)) return prevValue;\n return [...prevValue, { key: keyboardEvent.key, code: keyboardEvent.code }];\n });\n };\n\n const onKeyUp = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n setValue((prevValue) => prevValue.filter(({ code }) => code !== keyboardEvent.code));\n };\n\n element.addEventListener('keydown', onKeyDown);\n element.addEventListener('keyup', onKeyUp);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n element.removeEventListener('keyup', onKeyUp);\n };\n }, [enabled, internalRef.state, target]);\n\n if (target) return value;\n return { value, ref: internalRef };\n}) as UseKeysPressed;\n"],"names":["useKeysPressed","params","target","isTarget","enabled","value","setValue","useState","internalRef","useRefState","useEffect","element","getElement","onKeyDown","event","keyboardEvent","prevValue","code","onKeyUp"],"mappings":";;;;AAwDO,MAAMA,IAAkB,IAAIC,MAAkB;AACnD,QAAMC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAG5CG,KAFWF,IAASD,EAAO,CAAC,IAAIA,EAAO,CAAC,IAErB,WAAW,IAC9B,CAACI,GAAOC,CAAQ,IAAIC,EAA0C,CAAA,CAAE,GAChEC,IAAcC,EAAY,MAAM;AA+BtC,SA7BAC,EAAU,MAAM;AACd,QAAI,CAACN,EAAS;AACd,IAAAE,EAAS,CAAA,CAAE;AAEX,UAAMK,IAAWT,IAASU,EAAWV,CAAM,IAAIM,EAAY;AAC3D,QAAI,CAACG,EAAS;AAEd,UAAME,IAAY,CAACC,MAAiB;AAClC,YAAMC,IAAgBD;AACtB,MAAAR,EAAS,CAACU,MACJA,EAAU,KAAK,CAAC,EAAE,MAAAC,EAAA,MAAWA,MAASF,EAAc,IAAI,IAAUC,IAC/D,CAAC,GAAGA,GAAW,EAAE,KAAKD,EAAc,KAAK,MAAMA,EAAc,MAAM,CAC3E;AAAA,IAAA,GAGGG,IAAU,CAACJ,MAAiB;AAChC,YAAMC,IAAgBD;AACtB,MAAAR,EAAS,CAACU,MAAcA,EAAU,OAAO,CAAC,EAAE,MAAAC,EAAA,MAAWA,MAASF,EAAc,IAAI,CAAC;AAAA,IAAA;AAGrF,WAAAJ,EAAQ,iBAAiB,WAAWE,CAAS,GAC7CF,EAAQ,iBAAiB,SAASO,CAAO,GAElC,MAAM;AACX,MAAAP,EAAQ,oBAAoB,WAAWE,CAAS,GAChDF,EAAQ,oBAAoB,SAASO,CAAO;AAAA,IAAA;AAAA,EAC9C,GACC,CAACd,GAASI,EAAY,OAAON,CAAM,CAAC,GAEnCA,IAAeG,IACZ,EAAE,OAAAA,GAAO,KAAKG,EAAA;AACvB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLockCallback.mjs","sources":["../../../../src/hooks/useLockCallback/useLockCallback.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useLockCallback\n * @description - Hook that prevents a callback from being executed multiple times simultaneously\n * @category Utilities\n *\n * @param {Function} callback The callback to be locked\n * @returns {Function} The locked callback\n *\n * @example\n * const lockedCallback = useLockCallback(() => promise());\n */\nexport const useLockCallback = <Callback extends (...args: any[]) => any>(callback: Callback) => {\n const lockRef = useRef(false);\n const
|
|
1
|
+
{"version":3,"file":"useLockCallback.mjs","sources":["../../../../src/hooks/useLockCallback/useLockCallback.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * @name useLockCallback\n * @description - Hook that prevents a callback from being executed multiple times simultaneously\n * @category Utilities\n *\n * @param {Function} callback The callback to be locked\n * @returns {Function} The locked callback\n *\n * @example\n * const lockedCallback = useLockCallback(() => promise());\n */\nexport const useLockCallback = <Callback extends (...args: any[]) => any>(callback: Callback) => {\n const lockRef = useRef(false);\n const internalCallbackRef = useRef(callback);\n internalCallbackRef.current = callback;\n\n return async (...args: Parameters<Callback>) => {\n if (lockRef.current) return;\n lockRef.current = true;\n\n try {\n return await internalCallbackRef.current(...args);\n } finally {\n lockRef.current = false;\n }\n };\n};\n"],"names":["useLockCallback","callback","lockRef","useRef","internalCallbackRef","args"],"mappings":";AAaO,MAAMA,IAAkB,CAA2CC,MAAuB;AAC/F,QAAMC,IAAUC,EAAO,EAAK,GACtBC,IAAsBD,EAAOF,CAAQ;AAC3C,SAAAG,EAAoB,UAAUH,GAEvB,UAAUI,MAA+B;AAC9C,QAAI,CAAAH,EAAQ,SACZ;AAAA,MAAAA,EAAQ,UAAU;AAElB,UAAI;AACF,eAAO,MAAME,EAAoB,QAAQ,GAAGC,CAAI;AAAA,MAAA,UAClD;AACE,QAAAH,EAAQ,UAAU;AAAA,MAAA;AAAA;AAAA,EACpB;AAEJ;"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const e = performance && "memory" in performance && !!performance.memory, [r, m] = o(
|
|
1
|
+
import { useState as m, useEffect as a } from "react";
|
|
2
|
+
const p = () => {
|
|
3
|
+
const e = performance && "memory" in performance && !!performance.memory, [r, t] = m(
|
|
5
4
|
performance?.memory ?? {
|
|
6
5
|
jsHeapSizeLimit: 0,
|
|
7
6
|
totalJSHeapSize: 0,
|
|
8
7
|
usedJSHeapSize: 0
|
|
9
8
|
}
|
|
10
9
|
);
|
|
11
|
-
return
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
return a(() => {
|
|
11
|
+
if (!e) return;
|
|
12
|
+
const o = setInterval(() => t(performance.memory), 1e3);
|
|
13
|
+
return () => clearInterval(o);
|
|
14
|
+
}, []), { supported: e, value: r };
|
|
14
15
|
};
|
|
15
16
|
export {
|
|
16
|
-
|
|
17
|
+
p as useMemory
|
|
17
18
|
};
|
|
18
19
|
//# sourceMappingURL=useMemory.mjs.map
|