@siberiacancode/reactuse 0.1.0 → 0.1.1
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/useDidUpdate/useDidUpdate.cjs.map +1 -1
- package/dist/cjs/hooks/useDropZone/useDropZone.cjs +2 -0
- package/dist/cjs/hooks/useDropZone/useDropZone.cjs.map +1 -0
- package/dist/cjs/hooks/useEventSource/useEventSource.cjs +2 -0
- package/dist/cjs/hooks/useEventSource/useEventSource.cjs.map +1 -0
- package/dist/cjs/hooks/useHover/useHover.cjs +1 -1
- package/dist/cjs/hooks/useHover/useHover.cjs.map +1 -1
- package/dist/cjs/hooks/useQuery/useQuery.cjs +1 -1
- package/dist/cjs/hooks/useQuery/useQuery.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/hooks/useDidUpdate/useDidUpdate.mjs.map +1 -1
- package/dist/esm/hooks/useDropZone/useDropZone.mjs +50 -0
- package/dist/esm/hooks/useDropZone/useDropZone.mjs.map +1 -0
- package/dist/esm/hooks/useEventSource/useEventSource.mjs +52 -0
- package/dist/esm/hooks/useEventSource/useEventSource.mjs.map +1 -0
- package/dist/esm/hooks/useHover/useHover.mjs +9 -6
- package/dist/esm/hooks/useHover/useHover.mjs.map +1 -1
- package/dist/esm/hooks/useQuery/useQuery.mjs +27 -29
- package/dist/esm/hooks/useQuery/useQuery.mjs.map +1 -1
- package/dist/esm/index.mjs +260 -256
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useDropZone/useDropZone.d.ts +80 -0
- package/dist/types/hooks/useEventSource/useEventSource.d.ts +47 -0
- package/dist/types/hooks/useHover/useHover.d.ts +11 -4
- package/dist/types/hooks/useQuery/useQuery.d.ts +0 -1
- package/package.json +2 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\
|
|
1
|
+
{"version":3,"file":"useDidUpdate.cjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n *\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mounted = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mounted","useRef","useIsomorphicLayoutEffect"],"mappings":"iLAiBaA,EAAe,CAACC,EAAwBC,IAA0B,CACvE,MAAAC,EAAUC,SAAO,EAAK,EAE5BC,EAAA,0BACE,IAAM,IAAM,CACVF,EAAQ,QAAU,EACpB,EACA,CAAA,CACF,EAEAE,EAAAA,0BAA0B,IAAM,CAC9B,GAAIF,EAAQ,QACV,OAAOF,EAAO,EAGhBE,EAAQ,QAAU,IAEjBD,CAAI,CACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),q=require("../useRefState/useRefState.cjs"),F=require("../../utils/helpers/isTarget.cjs"),O=require("../../utils/helpers/getElement.cjs"),j=(...o)=>{const s=F.isTarget(o[0])?o[0]:void 0,t=s?typeof o[1]=="object"?o[1]:{onDrop:o[1]}:typeof o[0]=="object"?o[0]:{onDrop:o[0]},c=q.useRefState(),f=g.useRef(0),[E,S]=g.useState(null),[T,v]=g.useState(!1),a=t.dataTypes,R=e=>{if(!e.dataTransfer)return null;const n=Array.from(e.dataTransfer.files);return t.multiple?n:n.length?[n[0]]:null},V=e=>a?typeof a=="function"?a(e):a.length?e.length?e.every(n=>(console.log("type",n),console.log("dataTypes",a),a.some(u=>n.includes(u)))):!1:!0:!0,b=e=>{const n=Array.from(e).map(l=>l.type),u=V(n),i=t.multiple||e.length<=1;return u&&i};return g.useEffect(()=>{if(!s&&!c.state)return;const e=s?O.getElement(s):c.current;if(!e)return;const n=(r,d)=>{var p,L,m,h;if(!r.dataTransfer)return;if(!b(r.dataTransfer.items)){r.dataTransfer.dropEffect="none";return}r.preventDefault(),r.dataTransfer.dropEffect="copy";const D=R(r);if(d==="drop"){f.current=0,v(!1),S(D),(p=t.onDrop)==null||p.call(t,D,r);return}if(d==="enter"){f.current+=1,v(!0),(L=t.onEnter)==null||L.call(t,r);return}if(d==="leave"){if(f.current-=1,f.current!==0)return;v(!1),(m=t.onLeave)==null||m.call(t,r);return}d==="over"&&((h=t.onOver)==null||h.call(t,r))},u=r=>n(r,"drop"),i=r=>n(r,"over"),l=r=>n(r,"enter"),y=r=>n(r,"leave");return e.addEventListener("dragenter",l),e.addEventListener("dragover",i),e.addEventListener("dragleave",y),e.addEventListener("drop",u),()=>{e.removeEventListener("dragenter",l),e.removeEventListener("dragover",i),e.removeEventListener("dragleave",y),e.removeEventListener("drop",u)}},[s,c.current]),s?{overed:T,files:E}:{ref:c,overed:T,files:E}};exports.useDropZone=j;
|
|
2
|
+
//# sourceMappingURL=useDropZone.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDropZone.cjs","sources":["../../../../src/hooks/useDropZone/useDropZone.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\nexport type DropZoneDataTypes = ((types: string[]) => boolean) | string[];\n\nexport interface UseDropZoneOptions {\n /** The data types for drop zone */\n dataTypes?: DropZoneDataTypes;\n /** The multiple mode for drop zone */\n multiple?: boolean;\n /** The on drop callback */\n onDrop?: (files: File[] | null, event: DragEvent) => void;\n /** The on enter callback */\n onEnter?: (event: DragEvent) => void;\n /** The on leave callback */\n onLeave?: (event: DragEvent) => void;\n /** The on over callback */\n onOver?: (event: DragEvent) => void;\n}\n\nexport interface UseDropZoneReturn {\n /** The files that was dropped in drop zone */\n files: File[] | null;\n /** The over drop zone status */\n overed: boolean;\n}\n\nexport interface UseDropZone {\n (\n target: HookTarget,\n callback?: (files: File[] | null, event: DragEvent) => void\n ): UseDropZoneReturn;\n\n <Target extends Element>(\n callback?: (files: File[] | null, event: DragEvent) => void,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n\n (target: HookTarget, options?: UseDropZoneOptions): UseDropZoneReturn;\n\n <Target extends Element>(\n options?: UseDropZoneOptions,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useDropZone\n * @description - Hook that provides drop zone functionality\n * @category Elements\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element drop zone's\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {[boolean, File[] | null]} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, options);\n *\n * @overload\n * @param {Target} target The target element drop zone's\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {[boolean, File[] | null]} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, () => console.log('callback'));\n *\n * @overload\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(options);\n *\n * @overload\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(() => console.log('callback'));\n */\n\nexport const useDropZone = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onDrop: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onDrop: params[0] }\n ) as UseDropZoneOptions;\n\n const internalRef = useRefState<Element>();\n\n const counterRef = useRef(0);\n const [files, setFiles] = useState<File[] | null>(null);\n const [overed, setOvered] = useState(false);\n\n const dataTypes = options.dataTypes;\n\n const getFiles = (event: DragEvent) => {\n if (!event.dataTransfer) return null;\n const list = Array.from(event.dataTransfer.files);\n if (options.multiple) return list;\n if (!list.length) return null;\n return [list[0]];\n };\n\n const checkDataTypes = (types: string[]) => {\n if (!dataTypes) return true;\n if (typeof dataTypes === 'function') return dataTypes(types);\n if (!dataTypes.length) return true;\n if (!types.length) return false;\n\n return types.every((type) => {\n console.log('type', type);\n console.log('dataTypes', dataTypes);\n return dataTypes.some((dataType) => type.includes(dataType));\n });\n };\n\n const checkValidity = (items: DataTransferItemList) => {\n const types = Array.from(items).map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = options.multiple || items.length <= 1;\n\n return dataTypesValid && multipleFilesValid;\n };\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n\n if (!element) return;\n\n const onEvent = (event: DragEvent, type: 'drop' | 'enter' | 'leave' | 'over') => {\n if (!event.dataTransfer) return;\n\n const isValid = checkValidity(event.dataTransfer.items);\n if (!isValid) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n\n const currentFiles = getFiles(event);\n\n if (type === 'drop') {\n counterRef.current = 0;\n setOvered(false);\n setFiles(currentFiles);\n options.onDrop?.(currentFiles, event);\n return;\n }\n\n if (type === 'enter') {\n counterRef.current += 1;\n setOvered(true);\n options.onEnter?.(event);\n return;\n }\n\n if (type === 'leave') {\n counterRef.current -= 1;\n if (counterRef.current !== 0) return;\n setOvered(false);\n options.onLeave?.(event);\n return;\n }\n\n if (type === 'over') options.onOver?.(event);\n };\n\n const onDrop = ((event: DragEvent) => onEvent(event, 'drop')) as EventListener;\n const onDragOver = ((event: DragEvent) => onEvent(event, 'over')) as EventListener;\n const onDragEnter = ((event: DragEvent) => onEvent(event, 'enter')) as EventListener;\n const onDragLeave = ((event: DragEvent) => onEvent(event, 'leave')) as EventListener;\n\n element.addEventListener('dragenter', onDragEnter);\n element.addEventListener('dragover', onDragOver);\n element.addEventListener('dragleave', onDragLeave);\n element.addEventListener('drop', onDrop);\n\n return () => {\n element.removeEventListener('dragenter', onDragEnter);\n element.removeEventListener('dragover', onDragOver);\n element.removeEventListener('dragleave', onDragLeave);\n element.removeEventListener('drop', onDrop);\n };\n }, [target, internalRef.current]);\n\n if (target) return { overed, files };\n return { ref: internalRef, overed, files };\n}) as UseDropZone;\n"],"names":["useDropZone","params","target","isTarget","options","internalRef","useRefState","counterRef","useRef","files","setFiles","useState","overed","setOvered","dataTypes","getFiles","event","list","checkDataTypes","types","type","dataType","checkValidity","items","item","dataTypesValid","multipleFilesValid","useEffect","element","getElement","onEvent","currentFiles","_a","_b","_c","_d","onDrop","onDragOver","onDragEnter","onDragLeave"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),D=require("../../utils/helpers/getRetry.cjs"),M=(C,h=[],e={})=>{const[O,f]=a.useState(!1),[w,d]=a.useState(!1),[I,g]=a.useState(!1),y=a.useRef(e!=null&&e.retry?D.getRetry(e.retry):0),[b,m]=a.useState(void 0),[q,v]=a.useState(e==null?void 0:e.placeholderData),u=a.useRef(void 0),R=e.immediately??!0,S=()=>{u.current&&(u.current.close(),u.current=void 0,d(!1),f(!1),g(!1))},E=()=>{S();const t=new EventSource(C,{withCredentials:e.withCredentials??!1});u.current=t,f(!0),t.onopen=()=>{var r;d(!0),f(!1),m(void 0),(r=e==null?void 0:e.onOpen)==null||r.call(e)},t.onerror=r=>{var c;if(d(!1),f(!1),g(!0),m(r),(c=e==null?void 0:e.onError)==null||c.call(e,r),y.current>0){y.current-=1;const l=typeof(e==null?void 0:e.retryDelay)=="function"?e==null?void 0:e.retryDelay(y.current,r):e==null?void 0:e.retryDelay;if(l){setTimeout(E,l);return}}y.current=e!=null&&e.retry?D.getRetry(e.retry):0},t.onmessage=r=>{var l;const c=e!=null&&e.select?e==null?void 0:e.select(r.data):r.data;v(c),(l=e==null?void 0:e.onMessage)==null||l.call(e,r)},h.forEach(r=>{t.addEventListener(r,c=>{v(c.data)})})};return a.useEffect(()=>{if(R)return E(),()=>{S()}},[R]),{instance:u.current,data:q,error:b,isConnecting:O,isOpen:w,isError:I,close:S,open:E}};exports.useEventSource=M;
|
|
2
|
+
//# sourceMappingURL=useEventSource.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEventSource.cjs","sources":["../../../../src/hooks/useEventSource/useEventSource.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\n/** The use event source options type */\nexport interface UseEventSourceOptions<QueryData, Data> extends EventSourceInit {\n /** Immediately open the connection when calling this hook */\n immediately?: boolean;\n /* The placeholder data for the hook */\n placeholderData?: (() => Data) | Data;\n /* The retry count of requests */\n retry?: boolean | number;\n /* The retry delay of requests */\n retryDelay?: ((retry: number, event: Event) => number) | number;\n /* The onError function to be invoked */\n onError?: (error: Event) => void;\n /* The onMessage function to be invoked */\n onMessage?: (event: Event & { data?: Data }) => void;\n /* The onOpen function to be invoked */\n onOpen?: () => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n}\n\n/** The use event source return type */\ninterface UseEventSourceReturn<Data = any> {\n /** The latest data received via the EventSource */\n data?: Data;\n /** The current error */\n error?: Event;\n /** The instance of the EventSource */\n instance?: EventSource;\n /* The connecting state of the query */\n isConnecting: boolean;\n /* The error state of the query */\n isError: boolean;\n /* The open state of the query */\n isOpen: boolean;\n /** Closes the EventSource connection gracefully */\n close: () => void;\n /** Reopen the EventSource connection */\n open: () => void;\n}\n\n/**\n * @name useEventSource\n * @description - Hook that provides a reactive wrapper for event source\n * @category Browser\n *\n * @browserapi EventSource https://developer.mozilla.org/en-US/docs/Web/API/EventSource\n *\n * @param {string | URL} url The URL of the EventSource\n * @param {string[]} [events=[]] List of events to listen to\n * @param {UseEventSourceOptions} [options={}] Configuration options\n * @returns {UseEventSourceReturn<Data>} The EventSource state and controls\n *\n * @example\n * const { instance, data, isConnecting, isOpen, isError, close, open } = useEventSource('url', ['message']);\n */\nexport const useEventSource = <QueryData = any, Data = QueryData>(\n url: string | URL,\n events: string[] = [],\n options: UseEventSourceOptions<QueryData, Data> = {}\n): UseEventSourceReturn<Data> => {\n const [isConnecting, setIsConnecting] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const [isError, setIsError] = useState(false);\n\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const [error, setError] = useState<Event | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.placeholderData);\n\n const eventSourceRef = useRef<EventSource>(undefined);\n\n const immediately = options.immediately ?? true;\n\n const close = () => {\n if (!eventSourceRef.current) return;\n\n eventSourceRef.current.close();\n eventSourceRef.current = undefined;\n setIsOpen(false);\n setIsConnecting(false);\n setIsError(false);\n };\n\n const open = () => {\n close();\n\n const eventSource = new EventSource(url, { withCredentials: options.withCredentials ?? false });\n eventSourceRef.current = eventSource;\n\n setIsConnecting(true);\n\n eventSource.onopen = () => {\n setIsOpen(true);\n setIsConnecting(false);\n setError(undefined);\n options?.onOpen?.();\n };\n\n eventSource.onerror = (event) => {\n setIsOpen(false);\n setIsConnecting(false);\n setIsError(true);\n setError(event);\n options?.onError?.(event);\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n\n const retryDelay =\n typeof options?.retryDelay === 'function'\n ? options?.retryDelay(retryCountRef.current, event)\n : options?.retryDelay;\n\n if (retryDelay) {\n setTimeout(open, retryDelay);\n return;\n }\n }\n\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n\n eventSource.onmessage = (event) => {\n const data = options?.select ? options?.select(event.data) : event.data;\n setData(data);\n options?.onMessage?.(event);\n };\n\n events.forEach((eventName) => {\n eventSource.addEventListener(eventName, (event: Event & { data?: Data }) => {\n setData(event.data);\n });\n });\n };\n\n useEffect(() => {\n if (!immediately) return;\n\n open();\n return () => {\n close();\n };\n }, [immediately]);\n\n return {\n instance: eventSourceRef.current,\n data,\n error,\n isConnecting,\n isOpen,\n isError,\n close,\n open\n };\n};\n"],"names":["useEventSource","url","events","options","isConnecting","setIsConnecting","useState","isOpen","setIsOpen","isError","setIsError","retryCountRef","useRef","getRetry","error","setError","data","setData","eventSourceRef","immediately","close","open","eventSource","_a","event","retryDelay","eventName","useEffect"],"mappings":"uJA2DaA,EAAiB,CAC5BC,EACAC,EAAmB,CAAA,EACnBC,EAAkD,CAAA,IACnB,CAC/B,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAAS,EAAK,EAChD,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAS,EAAK,EACpC,CAACG,EAASC,CAAU,EAAIJ,EAAAA,SAAS,EAAK,EAEtCK,EAAgBC,SAAOT,GAAA,MAAAA,EAAS,MAAQU,EAAAA,SAASV,EAAQ,KAAK,EAAI,CAAC,EACnE,CAACW,EAAOC,CAAQ,EAAIT,EAAAA,SAA4B,MAAS,EACzD,CAACU,EAAMC,CAAO,EAAIX,EAAAA,SAA2BH,GAAA,YAAAA,EAAS,eAAe,EAErEe,EAAiBN,SAAoB,MAAS,EAE9CO,EAAchB,EAAQ,aAAe,GAErCiB,EAAQ,IAAM,CACbF,EAAe,UAEpBA,EAAe,QAAQ,MAAM,EAC7BA,EAAe,QAAU,OACzBV,EAAU,EAAK,EACfH,EAAgB,EAAK,EACrBK,EAAW,EAAK,EAClB,EAEMW,EAAO,IAAM,CACXD,EAAA,EAEA,MAAAE,EAAc,IAAI,YAAYrB,EAAK,CAAE,gBAAiBE,EAAQ,iBAAmB,GAAO,EAC9Fe,EAAe,QAAUI,EAEzBjB,EAAgB,EAAI,EAEpBiB,EAAY,OAAS,IAAM,OACzBd,EAAU,EAAI,EACdH,EAAgB,EAAK,EACrBU,EAAS,MAAS,GAClBQ,EAAApB,GAAA,YAAAA,EAAS,SAAT,MAAAoB,EAAA,KAAApB,EACF,EAEYmB,EAAA,QAAWE,GAAU,OAO3B,GANJhB,EAAU,EAAK,EACfH,EAAgB,EAAK,EACrBK,EAAW,EAAI,EACfK,EAASS,CAAK,GACdD,EAAApB,GAAA,YAAAA,EAAS,UAAT,MAAAoB,EAAA,KAAApB,EAAmBqB,GAEfb,EAAc,QAAU,EAAG,CAC7BA,EAAc,SAAW,EAEnB,MAAAc,EACJ,OAAOtB,GAAA,YAAAA,EAAS,aAAe,WAC3BA,GAAA,YAAAA,EAAS,WAAWQ,EAAc,QAASa,GAC3CrB,GAAA,YAAAA,EAAS,WAEf,GAAIsB,EAAY,CACd,WAAWJ,EAAMI,CAAU,EAC3B,MAAA,CACF,CAGFd,EAAc,QAAUR,GAAA,MAAAA,EAAS,MAAQU,EAAAA,SAASV,EAAQ,KAAK,EAAI,CACrE,EAEYmB,EAAA,UAAaE,GAAU,OAC3BR,MAAAA,EAAOb,GAAA,MAAAA,EAAS,OAASA,GAAA,YAAAA,EAAS,OAAOqB,EAAM,MAAQA,EAAM,KACnEP,EAAQD,CAAI,GACZO,EAAApB,GAAA,YAAAA,EAAS,YAAT,MAAAoB,EAAA,KAAApB,EAAqBqB,EACvB,EAEOtB,EAAA,QAASwB,GAAc,CAChBJ,EAAA,iBAAiBI,EAAYF,GAAmC,CAC1EP,EAAQO,EAAM,IAAI,CAAA,CACnB,CAAA,CACF,CACH,EAEAG,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAKR,EAEA,OAAAE,EAAA,EACE,IAAM,CACLD,EAAA,CACR,CAAA,EACC,CAACD,CAAW,CAAC,EAET,CACL,SAAUD,EAAe,QACzB,KAAAF,EACA,MAAAF,EACA,aAAAV,EACA,OAAAG,EACA,QAAAE,EACA,MAAAW,EACA,KAAAC,CACF,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),a=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),y=require("../../utils/helpers/getElement.cjs"),L=(...t)=>{const n=d.isTarget(t[0])?t[0]:void 0,v=n?typeof t[1]=="object"?t[1]:{onEntry:t[1]}:typeof t[0]=="object"?t[0]:{onEntry:t[0]},[f,l]=i.useState(!1),s=a.useRefState(),u=i.useRef(v);return u.current=v,i.useEffect(()=>{if(!n&&!s.state)return;const r=n?y.getElement(n):s.current;if(!r)return;const E=c=>{var e,o;(o=(e=u.current)==null?void 0:e.onEntry)==null||o.call(e,c),l(!0)},g=c=>{var e,o;(o=(e=u.current)==null?void 0:e.onLeave)==null||o.call(e,c),l(!1)};return r.addEventListener("mouseenter",E),r.addEventListener("mouseleave",g),()=>{r.removeEventListener("mouseenter",E),r.removeEventListener("mouseleave",g)}},[n,s.state]),n?f:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),a=require("../useRefState/useRefState.cjs"),d=require("../../utils/helpers/isTarget.cjs"),y=require("../../utils/helpers/getElement.cjs"),L=(...t)=>{const n=d.isTarget(t[0])?t[0]:void 0,v=n?typeof t[1]=="object"?t[1]:{onEntry:t[1]}:typeof t[0]=="object"?t[0]:{onEntry:t[0]},[f,l]=i.useState(!1),s=a.useRefState(),u=i.useRef(v);return u.current=v,i.useEffect(()=>{if(!n&&!s.state)return;const r=n?y.getElement(n):s.current;if(!r)return;const E=c=>{var e,o;(o=(e=u.current)==null?void 0:e.onEntry)==null||o.call(e,c),l(!0)},g=c=>{var e,o;(o=(e=u.current)==null?void 0:e.onLeave)==null||o.call(e,c),l(!1)};return r.addEventListener("mouseenter",E),r.addEventListener("mouseleave",g),()=>{r.removeEventListener("mouseenter",E),r.removeEventListener("mouseleave",g)}},[n,s.state]),n?f:{ref:s,value:f}};exports.useHover=L;
|
|
2
2
|
//# sourceMappingURL=useHover.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHover.cjs","sources":["../../../../src/hooks/useHover/useHover.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 hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): boolean;\n\n (target: HookTarget, options?: UseHoverOptions): boolean;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ):
|
|
1
|
+
{"version":3,"file":"useHover.cjs","sources":["../../../../src/hooks/useHover/useHover.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 hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHoverReturn {\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): boolean;\n\n (target: HookTarget, options?: UseHoverOptions): boolean;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): { ref: StateRef<Target> } & UseHoverReturn;\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseHoverReturn;\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [target, internalRef.state]);\n\n if (target) return hovering;\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"names":["useHover","params","target","isTarget","options","hovering","setHovering","useState","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","getElement","onMouseEnter","event","_b","_a","onMouseLeave"],"mappings":"mPA6EaA,EAAY,IAAIC,IAAkB,CACvC,MAAAC,EAAUC,WAASF,EAAO,CAAC,CAAC,EAAIA,EAAO,CAAC,EAAI,OAE5CG,EACJF,EACI,OAAOD,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,QAASA,EAAO,CAAC,CAAE,EACvB,OAAOA,EAAO,CAAC,GAAM,SACnBA,EAAO,CAAC,EACR,CAAE,QAASA,EAAO,CAAC,CAAE,EAGvB,CAACI,EAAUC,CAAW,EAAIC,EAAAA,SAAS,EAAK,EACxCC,EAAcC,EAAAA,YAAqB,EACnCC,EAAqBC,SAAOP,CAAO,EA4BzC,OA3BAM,EAAmB,QAAUN,EAE7BQ,EAAAA,UAAU,IAAM,CACd,GAAI,CAACV,GAAU,CAACM,EAAY,MAAO,OACnC,MAAMK,EAAWX,EAASY,EAAAA,WAAWZ,CAAM,EAAIM,EAAY,QAE3D,GAAI,CAACK,EAAS,OAER,MAAAE,EAAgBC,GAAiB,UAClBC,GAAAC,EAAAR,EAAA,UAAA,YAAAQ,EAAS,UAAT,MAAAD,EAAA,KAAAC,EAAmBF,GACtCV,EAAY,EAAI,CAClB,EAEMa,EAAgBH,GAAiB,UAClBC,GAAAC,EAAAR,EAAA,UAAA,YAAAQ,EAAS,UAAT,MAAAD,EAAA,KAAAC,EAAmBF,GACtCV,EAAY,EAAK,CACnB,EAEQ,OAAAO,EAAA,iBAAiB,aAAcE,CAAY,EAC3CF,EAAA,iBAAiB,aAAcM,CAAY,EAE5C,IAAM,CACHN,EAAA,oBAAoB,aAAcE,CAAY,EAC9CF,EAAA,oBAAoB,aAAcM,CAAY,CACxD,CACC,EAAA,CAACjB,EAAQM,EAAY,KAAK,CAAC,EAE1BN,EAAeG,EACZ,CACL,IAAKG,EACL,MAAOH,CACT,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),U=require("../useDidUpdate/useDidUpdate.cjs"),j=require("../useMount/useMount.cjs"),M=require("../../utils/helpers/getRetry.cjs"),O=(k,e)=>{const t=(e==null?void 0:e.enabled)??!0,y=r.useRef(e!=null&&e.retry?M.getRetry(e.retry):0),I=r.useRef(!1),[m,d]=r.useState(!1),[w,h]=r.useState(!1),[A,S]=r.useState(!1),[F,g]=r.useState(!1),[L,b]=r.useState(!!(e!=null&&e.placeholderData)),[Q,D]=r.useState(void 0),[T,q]=r.useState(e==null?void 0:e.placeholderData),v=r.useRef(new AbortController),E=r.useRef(void 0),R=(e==null?void 0:e.keys)??[],C=()=>{v.current.abort(),v.current=new AbortController},a=u=>{C(),d(!0),u==="init"&&(I.current=!0,h(!0)),u==="refetch"&&g(!0),k({signal:v.current.signal,keys:R}).then(c=>{var l;const f=e!=null&&e.select?e==null?void 0:e.select(c):c;(l=e==null?void 0:e.onSuccess)==null||l.call(e,f),q(f),b(!0),D(void 0),S(!1),d(!1),u==="init"&&h(!1),u==="refetch"&&g(!1)}).catch(c=>{var f;if(y.current>0){y.current-=1;const l=typeof(e==null?void 0:e.retryDelay)=="function"?e==null?void 0:e.retryDelay(y.current,c):e==null?void 0:e.retryDelay;if(l){setTimeout(()=>a(u),l);return}return a(u)}(f=e==null?void 0:e.onError)==null||f.call(e,c),q(void 0),b(!1),D(c),S(!0),d(!1),u==="init"&&h(!1),u==="refetch"&&g(!1),y.current=e!=null&&e.retry?M.getRetry(e.retry):0}).finally(()=>{if(e!=null&&e.refetchInterval){const c=setInterval(()=>{clearInterval(c),a("refetch")},e==null?void 0:e.refetchInterval);E.current=c}})};return j.useMount(()=>{t&&a("init")}),U.useDidUpdate(()=>{t&&a(I.current?"refetch":"init")},[t,...R]),r.useEffect(()=>()=>{clearInterval(E.current)},[t,e==null?void 0:e.refetchInterval,e==null?void 0:e.retry,...R]),{abort:C,data:T,error:Q,refetch:()=>a("refetch"),isFetching:m,isLoading:w,isError:A,isSuccess:L,isRefetching:F}};exports.useQuery=O;
|
|
2
2
|
//# sourceMappingURL=useQuery.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.cjs","sources":["../../../../src/hooks/useQuery/useQuery.ts"],"sourcesContent":["import type { DependencyList } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/* The use query return type */\nexport interface UseQueryOptions<QueryData, Data> {\n /* The enabled state of the query */\n enabled?: boolean;\n /* The
|
|
1
|
+
{"version":3,"file":"useQuery.cjs","sources":["../../../../src/hooks/useQuery/useQuery.ts"],"sourcesContent":["import type { DependencyList } from 'react';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\nimport { useDidUpdate } from '../useDidUpdate/useDidUpdate';\nimport { useMount } from '../useMount/useMount';\n\n/* The use query return type */\nexport interface UseQueryOptions<QueryData, Data> {\n /* The enabled state of the query */\n enabled?: boolean;\n /* The depends for the hook */\n keys?: DependencyList;\n /* The placeholder data for the hook */\n placeholderData?: (() => Data) | Data;\n /* The refetch interval */\n refetchInterval?: number;\n /* The retry count of requests */\n retry?: boolean | number;\n /* The retry delay of requests */\n retryDelay?: ((retry: number, error: Error) => number) | number;\n /* The callback function to be invoked on error */\n onError?: (error: Error) => void;\n /* The callback function to be invoked on success */\n onSuccess?: (data: Data) => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n}\n\ninterface UseQueryCallbackParams {\n /* The depends for the hook */\n keys: DependencyList;\n /* The abort signal */\n signal: AbortSignal;\n}\n\n/* The use query return type */\nexport interface UseQueryReturn<Data> {\n /* The abort function */\n abort: AbortController['abort'];\n /* The state of the query */\n data?: Data;\n /* The success state of the query */\n error?: Error;\n /* The error state of the query */\n isError: boolean;\n /* The fetching state of the query */\n isFetching: boolean;\n /* The loading state of the query */\n isLoading: boolean;\n /* The refetching state of the query */\n isRefetching: boolean;\n /* The success state of the query */\n isSuccess: boolean;\n /* The refetch function */\n refetch: () => void;\n}\n\n/**\n * @name useQuery\n * @description - Hook that defines the logic when query data\n * @category Utilities\n *\n * @template Data The type of the data\n * @param {() => Promise<Data>} callback The callback function to be invoked\n * @param {DependencyList} [options.keys] The dependencies for the hook\n * @param {(data: Data) => void} [options.onSuccess] The callback function to be invoked on success\n * @param {(error: Error) => void} [options.onError] The callback function to be invoked on error\n * @param {UseQueryOptionsSelect<Data>} [options.select] The select function to be invoked\n * @param {Data | (() => Data)} [options.initialData] The initial data for the hook\n * @param {Data | (() => Data)} [options.placeholderData] The placeholder data for the hook\n * @param {number} [options.refetchInterval] The refetch interval\n * @param {boolean | number} [options.retry] The retry count of requests\n * @returns {UseQueryReturn<Data>} An object with the state of the query\n *\n * @example\n * const { data, isFetching, isLoading, isError, isSuccess, error, refetch, isRefetching, abort, aborted } = useQuery(() => fetch('url'));\n */\nexport const useQuery = <QueryData, Data = QueryData>(\n callback: (params: UseQueryCallbackParams) => Promise<QueryData>,\n options?: UseQueryOptions<QueryData, Data>\n): UseQueryReturn<Data> => {\n const enabled = options?.enabled ?? true;\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const alreadyRequested = useRef(false);\n\n const [isFetching, setIsFetching] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [isRefetching, setIsRefetching] = useState(false);\n const [isSuccess, setIsSuccess] = useState(!!options?.placeholderData);\n\n const [error, setError] = useState<Error | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.placeholderData);\n\n const abortControllerRef = useRef<AbortController>(new AbortController());\n const intervalIdRef = useRef<ReturnType<typeof setInterval>>(undefined);\n\n const keys = options?.keys ?? [];\n\n const abort = () => {\n abortControllerRef.current.abort();\n abortControllerRef.current = new AbortController();\n };\n\n const request = (action: 'init' | 'refetch') => {\n abort();\n\n setIsFetching(true);\n if (action === 'init') {\n alreadyRequested.current = true;\n setIsLoading(true);\n }\n if (action === 'refetch') setIsRefetching(true);\n callback({ signal: abortControllerRef.current.signal, keys })\n .then((response) => {\n const data = options?.select ? options?.select(response) : response;\n options?.onSuccess?.(data as Data);\n setData(data as Data);\n setIsSuccess(true);\n setError(undefined);\n setIsError(false);\n setIsFetching(false);\n if (action === 'init') setIsLoading(false);\n if (action === 'refetch') setIsRefetching(false);\n })\n .catch((error: Error) => {\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n const retryDelay =\n typeof options?.retryDelay === 'function'\n ? options?.retryDelay(retryCountRef.current, error)\n : options?.retryDelay;\n\n if (retryDelay) {\n setTimeout(() => request(action), retryDelay);\n return;\n }\n\n return request(action);\n }\n options?.onError?.(error);\n setData(undefined);\n setIsSuccess(false);\n setError(error);\n setIsError(true);\n setIsFetching(false);\n if (action === 'init') setIsLoading(false);\n if (action === 'refetch') setIsRefetching(false);\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n })\n .finally(() => {\n if (options?.refetchInterval) {\n const interval = setInterval(() => {\n clearInterval(interval);\n request('refetch');\n }, options?.refetchInterval);\n intervalIdRef.current = interval;\n }\n });\n };\n\n useMount(() => {\n if (!enabled) return;\n request('init');\n });\n\n useDidUpdate(() => {\n if (!enabled) return;\n request(alreadyRequested.current ? 'refetch' : 'init');\n }, [enabled, ...keys]);\n\n useEffect(() => {\n return () => {\n clearInterval(intervalIdRef.current);\n };\n }, [enabled, options?.refetchInterval, options?.retry, ...keys]);\n\n const refetch = () => request('refetch');\n\n return {\n abort,\n data,\n error,\n refetch,\n isFetching,\n isLoading,\n isError,\n isSuccess,\n isRefetching\n };\n};\n"],"names":["useQuery","callback","options","enabled","retryCountRef","useRef","getRetry","alreadyRequested","isFetching","setIsFetching","useState","isLoading","setIsLoading","isError","setIsError","isRefetching","setIsRefetching","isSuccess","setIsSuccess","error","setError","data","setData","abortControllerRef","intervalIdRef","keys","abort","request","action","response","_a","retryDelay","interval","useMount","useDidUpdate","useEffect"],"mappings":"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"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("./hooks/useActiveElement/useActiveElement.cjs"),C=require("./hooks/useAsync/useAsync.cjs"),E=require("./hooks/useBattery/useBattery.cjs"),m=require("./hooks/useBluetooth/useBluetooth.cjs"),p=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),y=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),R=require("./hooks/useClickOutside/useClickOutside.cjs"),O=require("./hooks/useClipboard/useClipboard.cjs"),k=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),u=require("./hooks/useCookies/useCookies.cjs"),I=require("./hooks/useCopy/useCopy.cjs"),v=require("./hooks/useCounter/useCounter.cjs"),D=require("./hooks/useCssVar/useCssVar.cjs"),b=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),A=require("./hooks/useDebounceValue/useDebounceValue.cjs"),L=require("./hooks/useDefault/useDefault.cjs"),M=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),f=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),h=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),_=require("./hooks/useDidUpdate/useDidUpdate.cjs"),N=require("./hooks/useDisclosure/useDisclosure.cjs"),B=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),K=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),F=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),V=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),w=require("./hooks/useDoubleClick/useDoubleClick.cjs"),W=require("./hooks/useElementSize/useElementSize.cjs"),x=require("./hooks/useEvent/useEvent.cjs"),H=require("./hooks/useEventListener/useEventListener.cjs"),U=require("./hooks/useEyeDropper/useEyeDropper.cjs"),z=require("./hooks/useFavicon/useFavicon.cjs"),G=require("./hooks/useField/useField.cjs"),Q=require("./hooks/useFileDialog/useFileDialog.cjs"),X=require("./hooks/useFocus/useFocus.cjs"),j=require("./hooks/useFps/useFps.cjs"),J=require("./hooks/useFul/useFul.cjs"),Y=require("./hooks/useFullscreen/useFullscreen.cjs"),i=require("./hooks/useGamepad/useGamepad.cjs"),Z=require("./hooks/useGeolocation/useGeolocation.cjs"),$=require("./hooks/useHash/useHash.cjs"),n=require("./hooks/useHotkeys/useHotkeys.cjs"),ee=require("./hooks/useHover/useHover.cjs"),se=require("./hooks/useIdle/useIdle.cjs"),ue=require("./hooks/useImage/useImage.cjs"),re=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),te=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),oe=require("./hooks/useInterval/useInterval.cjs"),ie=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),ne=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),ce=require("./hooks/useKeyboard/useKeyboard.cjs"),ae=require("./hooks/useKeyPress/useKeyPress.cjs"),le=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),qe=require("./hooks/useKeysPressed/useKeysPressed.cjs"),Se=require("./hooks/useLastChanged/useLastChanged.cjs"),de=require("./hooks/useLatest/useLatest.cjs"),ge=require("./hooks/useLess/useLess.cjs"),Te=require("./hooks/useList/useList.cjs"),Pe=require("./hooks/useLocalStorage/useLocalStorage.cjs"),Ce=require("./hooks/useLockCallback/useLockCallback.cjs"),Ee=require("./hooks/useLogger/useLogger.cjs"),me=require("./hooks/useLongPress/useLongPress.cjs"),pe=require("./hooks/useMap/useMap.cjs"),ye=require("./hooks/useMeasure/useMeasure.cjs"),Re=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Oe=require("./hooks/useMemory/useMemory.cjs"),ke=require("./hooks/useMount/useMount.cjs"),Ie=require("./hooks/useMouse/useMouse.cjs"),ve=require("./hooks/useMutation/useMutation.cjs"),De=require("./hooks/useMutationObserver/useMutationObserver.cjs"),c=require("./hooks/useNetwork/useNetwork.cjs"),be=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Ae=require("./hooks/useOnce/useOnce.cjs"),Le=require("./hooks/useOnline/useOnline.cjs"),a=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),Me=require("./hooks/useOptimistic/useOptimistic.cjs"),fe=require("./hooks/useOrientation/useOrientation.cjs"),he=require("./hooks/useOtpCredential/useOtpCredential.cjs"),_e=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Ne=require("./hooks/useParallax/useParallax.cjs"),Be=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Ke=require("./hooks/usePermission/usePermission.cjs"),Fe=require("./hooks/usePointerLock/usePointerLock.cjs"),Ve=require("./hooks/usePostMessage/usePostMessage.cjs"),we=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),We=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),xe=require("./hooks/usePreferredDark/usePreferredDark.cjs"),He=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Ue=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),ze=require("./hooks/usePrevious/usePrevious.cjs"),Ge=require("./hooks/useQuery/useQuery.cjs"),Qe=require("./hooks/useQueue/useQueue.cjs"),Xe=require("./hooks/useRaf/useRaf.cjs"),je=require("./hooks/useRafValue/useRafValue.cjs"),Je=require("./hooks/useRefState/useRefState.cjs"),Ye=require("./hooks/useRenderCount/useRenderCount.cjs"),Ze=require("./hooks/useRenderInfo/useRenderInfo.cjs"),$e=require("./hooks/useRerender/useRerender.cjs"),es=require("./hooks/useResizeObserver/useResizeObserver.cjs"),ss=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),l=require("./hooks/useScript/useScript.cjs"),us=require("./hooks/useScroll/useScroll.cjs"),rs=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),ts=require("./hooks/useScrollTo/useScrollTo.cjs"),os=require("./hooks/useSessionStorage/useSessionStorage.cjs"),is=require("./hooks/useSet/useSet.cjs"),ns=require("./hooks/useShare/useShare.cjs"),q=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),cs=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),as=require("./hooks/useStateHistory/useStateHistory.cjs"),ls=require("./hooks/useStep/useStep.cjs"),qs=require("./hooks/useSticky/useSticky.cjs"),Ss=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),ds=require("./hooks/useTextDirection/useTextDirection.cjs"),S=require("./hooks/useTextSelection/useTextSelection.cjs"),gs=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Ts=require("./hooks/useThrottleValue/useThrottleValue.cjs"),Ps=require("./hooks/useTime/useTime.cjs"),Cs=require("./hooks/useTimeout/useTimeout.cjs"),d=require("./hooks/useTimer/useTimer.cjs"),Es=require("./hooks/useToggle/useToggle.cjs"),ms=require("./hooks/useUnmount/useUnmount.cjs"),ps=require("./hooks/useVibrate/useVibrate.cjs"),ys=require("./hooks/useWakeLock/useWakeLock.cjs"),Rs=require("./hooks/useWebSocket/useWebSocket.cjs"),Os=require("./hooks/useWindowEvent/useWindowEvent.cjs"),ks=require("./hooks/useWindowFocus/useWindowFocus.cjs"),g=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Is=require("./hooks/useWindowSize/useWindowSize.cjs"),vs=require("./hooks/useWizard/useWizard.cjs"),T=require("./utils/helpers/copy.cjs"),Ds=require("./utils/helpers/debounce.cjs"),bs=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),As=require("./utils/helpers/getRetry.cjs"),Ls=require("./utils/helpers/isTarget.cjs"),Ms=require("./utils/helpers/throttle.cjs");exports.useActiveElement=P.useActiveElement;exports.useAsync=C.useAsync;exports.useBattery=E.useBattery;exports.useBluetooth=m.useBluetooth;exports.useBoolean=p.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=y.useBrowserLanguage;exports.useClickOutside=R.useClickOutside;exports.useClipboard=O.useClipboard;exports.useConst=k.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=u.clearCookies;exports.getParsedCookies=u.getParsedCookies;exports.useCookies=u.useCookies;exports.useCopy=I.useCopy;exports.useCounter=v.useCounter;exports.useCssVar=D.useCssVar;exports.useDebounceCallback=b.useDebounceCallback;exports.useDebounceValue=A.useDebounceValue;exports.useDefault=L.useDefault;exports.useDeviceMotion=M.useDeviceMotion;exports.useDeviceOrientation=f.useDeviceOrientation;exports.useDevicePixelRatio=h.useDevicePixelRatio;exports.useDidUpdate=_.useDidUpdate;exports.useDisclosure=N.useDisclosure;exports.useDisplayMedia=B.useDisplayMedia;exports.useDocumentEvent=K.useDocumentEvent;exports.useDocumentTitle=F.useDocumentTitle;exports.useDocumentVisibility=V.useDocumentVisibility;exports.useDoubleClick=w.useDoubleClick;exports.useElementSize=W.useElementSize;exports.useEvent=x.useEvent;exports.useEventListener=H.useEventListener;exports.useEyeDropper=U.useEyeDropper;exports.useFavicon=z.useFavicon;exports.useField=G.useField;exports.useFileDialog=Q.useFileDialog;exports.useFocus=X.useFocus;exports.useFps=j.useFps;exports.useFul=J.useFul;exports.useFullscreen=Y.useFullscreen;exports.mapGamepadToXbox360Controller=i.mapGamepadToXbox360Controller;exports.useGamepad=i.useGamepad;exports.useGeolocation=Z.useGeolocation;exports.useHash=$.useHash;exports.isHotkeyMatch=n.isHotkeyMatch;exports.useHotkeys=n.useHotkeys;exports.useHover=ee.useHover;exports.useIdle=se.useIdle;exports.useImage=ue.useImage;exports.useInfiniteScroll=re.useInfiniteScroll;exports.useIntersectionObserver=te.useIntersectionObserver;exports.useInterval=oe.useInterval;exports.useIsFirstRender=ie.useIsFirstRender;exports.useIsomorphicLayoutEffect=ne.useIsomorphicLayoutEffect;exports.useKeyboard=ce.useKeyboard;exports.useKeyPress=ae.useKeyPress;exports.useKeyPressEvent=le.useKeyPressEvent;exports.useKeysPressed=qe.useKeysPressed;exports.useLastChanged=Se.useLastChanged;exports.useLatest=de.useLatest;exports.useLess=ge.useLess;exports.useList=Te.useList;exports.useLocalStorage=Pe.useLocalStorage;exports.useLockCallback=Ce.useLockCallback;exports.useLogger=Ee.useLogger;exports.useLongPress=me.useLongPress;exports.useMap=pe.useMap;exports.useMeasure=ye.useMeasure;exports.useMediaQuery=Re.useMediaQuery;exports.useMemory=Oe.useMemory;exports.useMount=ke.useMount;exports.useMouse=Ie.useMouse;exports.useMutation=ve.useMutation;exports.useMutationObserver=De.useMutationObserver;exports.getConnection=c.getConnection;exports.useNetwork=c.useNetwork;exports.useOffsetPagination=be.useOffsetPagination;exports.useOnce=Ae.useOnce;exports.useOnline=Le.useOnline;exports.getOperatingSystem=a.getOperatingSystem;exports.useOperatingSystem=a.useOperatingSystem;exports.useOptimistic=Me.useOptimistic;exports.useOrientation=fe.useOrientation;exports.useOtpCredential=he.useOtpCredential;exports.usePageLeave=_e.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=Ne.useParallax;exports.usePerformanceObserver=Be.usePerformanceObserver;exports.usePermission=Ke.usePermission;exports.usePointerLock=Fe.usePointerLock;exports.usePostMessage=Ve.usePostMessage;exports.usePreferredColorScheme=we.usePreferredColorScheme;exports.usePreferredContrast=We.usePreferredContrast;exports.usePreferredDark=xe.usePreferredDark;exports.usePreferredLanguages=He.usePreferredLanguages;exports.usePreferredReducedMotion=Ue.usePreferredReducedMotion;exports.usePrevious=ze.usePrevious;exports.useQuery=Ge.useQuery;exports.useQueue=Qe.useQueue;exports.useRaf=Xe.useRaf;exports.useRafValue=je.useRafValue;exports.useRefState=Je.useRefState;exports.useRenderCount=Ye.useRenderCount;exports.useRenderInfo=Ze.useRenderInfo;exports.useRerender=$e.useRerender;exports.useResizeObserver=es.useResizeObserver;exports.useScreenOrientation=ss.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=l.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=l.useScript;exports.useScroll=us.useScroll;exports.useScrollIntoView=rs.useScrollIntoView;exports.useScrollTo=ts.useScrollTo;exports.useSessionStorage=os.useSessionStorage;exports.useSet=is.useSet;exports.useShare=ns.useShare;exports.getSpeechRecognition=q.getSpeechRecognition;exports.useSpeechRecognition=q.useSpeechRecognition;exports.useSpeechSynthesis=cs.useSpeechSynthesis;exports.useStateHistory=as.useStateHistory;exports.useStep=ls.useStep;exports.useSticky=qs.useSticky;exports.useStopwatch=Ss.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=ds.useTextDirection;exports.getRangesSelection=S.getRangesSelection;exports.useTextSelection=S.useTextSelection;exports.useThrottleCallback=gs.useThrottleCallback;exports.useThrottleValue=Ts.useThrottleValue;exports.useTime=Ps.useTime;exports.useTimeout=Cs.useTimeout;exports.getTimeFromSeconds=d.getTimeFromSeconds;exports.useTimer=d.useTimer;exports.useToggle=Es.useToggle;exports.useUnmount=ms.useUnmount;exports.useVibrate=ps.useVibrate;exports.useWakeLock=ys.useWakeLock;exports.useWebSocket=Rs.useWebSocket;exports.useWindowEvent=Os.useWindowEvent;exports.useWindowFocus=ks.useWindowFocus;exports.scrollTo=g.scrollTo;exports.useWindowScroll=g.useWindowScroll;exports.useWindowSize=Is.useWindowSize;exports.useWizard=vs.useWizard;exports.copy=T.copy;exports.legacyCopyToClipboard=T.legacyCopyToClipboard;exports.debounce=Ds.debounce;exports.getDate=bs.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=As.getRetry;exports.isTarget=Ls.isTarget;exports.throttle=Ms.throttle;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("./hooks/useActiveElement/useActiveElement.cjs"),C=require("./hooks/useAsync/useAsync.cjs"),E=require("./hooks/useBattery/useBattery.cjs"),p=require("./hooks/useBluetooth/useBluetooth.cjs"),m=require("./hooks/useBoolean/useBoolean.cjs"),e=require("./hooks/useBreakpoints/useBreakpoints.cjs"),y=require("./hooks/useBrowserLanguage/useBrowserLanguage.cjs"),R=require("./hooks/useClickOutside/useClickOutside.cjs"),O=require("./hooks/useClipboard/useClipboard.cjs"),k=require("./hooks/useConst/useConst.cjs"),s=require("./hooks/useCookie/useCookie.cjs"),u=require("./hooks/useCookies/useCookies.cjs"),I=require("./hooks/useCopy/useCopy.cjs"),v=require("./hooks/useCounter/useCounter.cjs"),D=require("./hooks/useCssVar/useCssVar.cjs"),b=require("./hooks/useDebounceCallback/useDebounceCallback.cjs"),A=require("./hooks/useDebounceValue/useDebounceValue.cjs"),L=require("./hooks/useDefault/useDefault.cjs"),M=require("./hooks/useDeviceMotion/useDeviceMotion.cjs"),f=require("./hooks/useDeviceOrientation/useDeviceOrientation.cjs"),h=require("./hooks/useDevicePixelRatio/useDevicePixelRatio.cjs"),_=require("./hooks/useDidUpdate/useDidUpdate.cjs"),N=require("./hooks/useDisclosure/useDisclosure.cjs"),B=require("./hooks/useDisplayMedia/useDisplayMedia.cjs"),K=require("./hooks/useDocumentEvent/useDocumentEvent.cjs"),F=require("./hooks/useDocumentTitle/useDocumentTitle.cjs"),V=require("./hooks/useDocumentVisibility/useDocumentVisibility.cjs"),w=require("./hooks/useDoubleClick/useDoubleClick.cjs"),W=require("./hooks/useDropZone/useDropZone.cjs"),x=require("./hooks/useElementSize/useElementSize.cjs"),H=require("./hooks/useEvent/useEvent.cjs"),U=require("./hooks/useEventListener/useEventListener.cjs"),z=require("./hooks/useEventSource/useEventSource.cjs"),G=require("./hooks/useEyeDropper/useEyeDropper.cjs"),Q=require("./hooks/useFavicon/useFavicon.cjs"),X=require("./hooks/useField/useField.cjs"),Z=require("./hooks/useFileDialog/useFileDialog.cjs"),j=require("./hooks/useFocus/useFocus.cjs"),J=require("./hooks/useFps/useFps.cjs"),Y=require("./hooks/useFul/useFul.cjs"),$=require("./hooks/useFullscreen/useFullscreen.cjs"),i=require("./hooks/useGamepad/useGamepad.cjs"),ee=require("./hooks/useGeolocation/useGeolocation.cjs"),se=require("./hooks/useHash/useHash.cjs"),n=require("./hooks/useHotkeys/useHotkeys.cjs"),ue=require("./hooks/useHover/useHover.cjs"),re=require("./hooks/useIdle/useIdle.cjs"),te=require("./hooks/useImage/useImage.cjs"),oe=require("./hooks/useInfiniteScroll/useInfiniteScroll.cjs"),ie=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),ne=require("./hooks/useInterval/useInterval.cjs"),ce=require("./hooks/useIsFirstRender/useIsFirstRender.cjs"),ae=require("./hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.cjs"),le=require("./hooks/useKeyboard/useKeyboard.cjs"),qe=require("./hooks/useKeyPress/useKeyPress.cjs"),Se=require("./hooks/useKeyPressEvent/useKeyPressEvent.cjs"),de=require("./hooks/useKeysPressed/useKeysPressed.cjs"),ge=require("./hooks/useLastChanged/useLastChanged.cjs"),Te=require("./hooks/useLatest/useLatest.cjs"),Pe=require("./hooks/useLess/useLess.cjs"),Ce=require("./hooks/useList/useList.cjs"),Ee=require("./hooks/useLocalStorage/useLocalStorage.cjs"),pe=require("./hooks/useLockCallback/useLockCallback.cjs"),me=require("./hooks/useLogger/useLogger.cjs"),ye=require("./hooks/useLongPress/useLongPress.cjs"),Re=require("./hooks/useMap/useMap.cjs"),Oe=require("./hooks/useMeasure/useMeasure.cjs"),ke=require("./hooks/useMediaQuery/useMediaQuery.cjs"),Ie=require("./hooks/useMemory/useMemory.cjs"),ve=require("./hooks/useMount/useMount.cjs"),De=require("./hooks/useMouse/useMouse.cjs"),be=require("./hooks/useMutation/useMutation.cjs"),Ae=require("./hooks/useMutationObserver/useMutationObserver.cjs"),c=require("./hooks/useNetwork/useNetwork.cjs"),Le=require("./hooks/useOffsetPagination/useOffsetPagination.cjs"),Me=require("./hooks/useOnce/useOnce.cjs"),fe=require("./hooks/useOnline/useOnline.cjs"),a=require("./hooks/useOperatingSystem/useOperatingSystem.cjs"),he=require("./hooks/useOptimistic/useOptimistic.cjs"),_e=require("./hooks/useOrientation/useOrientation.cjs"),Ne=require("./hooks/useOtpCredential/useOtpCredential.cjs"),Be=require("./hooks/usePageLeave/usePageLeave.cjs"),r=require("./hooks/usePaint/usePaint.cjs"),Ke=require("./hooks/useParallax/useParallax.cjs"),Fe=require("./hooks/usePerformanceObserver/usePerformanceObserver.cjs"),Ve=require("./hooks/usePermission/usePermission.cjs"),we=require("./hooks/usePointerLock/usePointerLock.cjs"),We=require("./hooks/usePostMessage/usePostMessage.cjs"),xe=require("./hooks/usePreferredColorScheme/usePreferredColorScheme.cjs"),He=require("./hooks/usePreferredContrast/usePreferredContrast.cjs"),Ue=require("./hooks/usePreferredDark/usePreferredDark.cjs"),ze=require("./hooks/usePreferredLanguages/usePreferredLanguages.cjs"),Ge=require("./hooks/usePreferredReducedMotion/usePreferredReducedMotion.cjs"),Qe=require("./hooks/usePrevious/usePrevious.cjs"),Xe=require("./hooks/useQuery/useQuery.cjs"),Ze=require("./hooks/useQueue/useQueue.cjs"),je=require("./hooks/useRaf/useRaf.cjs"),Je=require("./hooks/useRafValue/useRafValue.cjs"),Ye=require("./hooks/useRefState/useRefState.cjs"),$e=require("./hooks/useRenderCount/useRenderCount.cjs"),es=require("./hooks/useRenderInfo/useRenderInfo.cjs"),ss=require("./hooks/useRerender/useRerender.cjs"),us=require("./hooks/useResizeObserver/useResizeObserver.cjs"),rs=require("./hooks/useScreenOrientation/useScreenOrientation.cjs"),l=require("./hooks/useScript/useScript.cjs"),ts=require("./hooks/useScroll/useScroll.cjs"),os=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),is=require("./hooks/useScrollTo/useScrollTo.cjs"),ns=require("./hooks/useSessionStorage/useSessionStorage.cjs"),cs=require("./hooks/useSet/useSet.cjs"),as=require("./hooks/useShare/useShare.cjs"),q=require("./hooks/useSpeechRecognition/useSpeechRecognition.cjs"),ls=require("./hooks/useSpeechSynthesis/useSpeechSynthesis.cjs"),qs=require("./hooks/useStateHistory/useStateHistory.cjs"),Ss=require("./hooks/useStep/useStep.cjs"),ds=require("./hooks/useSticky/useSticky.cjs"),gs=require("./hooks/useStopwatch/useStopwatch.cjs"),t=require("./hooks/useStorage/useStorage.cjs"),Ts=require("./hooks/useTextDirection/useTextDirection.cjs"),S=require("./hooks/useTextSelection/useTextSelection.cjs"),Ps=require("./hooks/useThrottleCallback/useThrottleCallback.cjs"),Cs=require("./hooks/useThrottleValue/useThrottleValue.cjs"),Es=require("./hooks/useTime/useTime.cjs"),ps=require("./hooks/useTimeout/useTimeout.cjs"),d=require("./hooks/useTimer/useTimer.cjs"),ms=require("./hooks/useToggle/useToggle.cjs"),ys=require("./hooks/useUnmount/useUnmount.cjs"),Rs=require("./hooks/useVibrate/useVibrate.cjs"),Os=require("./hooks/useWakeLock/useWakeLock.cjs"),ks=require("./hooks/useWebSocket/useWebSocket.cjs"),Is=require("./hooks/useWindowEvent/useWindowEvent.cjs"),vs=require("./hooks/useWindowFocus/useWindowFocus.cjs"),g=require("./hooks/useWindowScroll/useWindowScroll.cjs"),Ds=require("./hooks/useWindowSize/useWindowSize.cjs"),bs=require("./hooks/useWizard/useWizard.cjs"),T=require("./utils/helpers/copy.cjs"),As=require("./utils/helpers/debounce.cjs"),Ls=require("./utils/helpers/getDate.cjs"),o=require("./utils/helpers/getElement.cjs"),Ms=require("./utils/helpers/getRetry.cjs"),fs=require("./utils/helpers/isTarget.cjs"),hs=require("./utils/helpers/throttle.cjs");exports.useActiveElement=P.useActiveElement;exports.useAsync=C.useAsync;exports.useBattery=E.useBattery;exports.useBluetooth=p.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=y.useBrowserLanguage;exports.useClickOutside=R.useClickOutside;exports.useClipboard=O.useClipboard;exports.useConst=k.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=u.clearCookies;exports.getParsedCookies=u.getParsedCookies;exports.useCookies=u.useCookies;exports.useCopy=I.useCopy;exports.useCounter=v.useCounter;exports.useCssVar=D.useCssVar;exports.useDebounceCallback=b.useDebounceCallback;exports.useDebounceValue=A.useDebounceValue;exports.useDefault=L.useDefault;exports.useDeviceMotion=M.useDeviceMotion;exports.useDeviceOrientation=f.useDeviceOrientation;exports.useDevicePixelRatio=h.useDevicePixelRatio;exports.useDidUpdate=_.useDidUpdate;exports.useDisclosure=N.useDisclosure;exports.useDisplayMedia=B.useDisplayMedia;exports.useDocumentEvent=K.useDocumentEvent;exports.useDocumentTitle=F.useDocumentTitle;exports.useDocumentVisibility=V.useDocumentVisibility;exports.useDoubleClick=w.useDoubleClick;exports.useDropZone=W.useDropZone;exports.useElementSize=x.useElementSize;exports.useEvent=H.useEvent;exports.useEventListener=U.useEventListener;exports.useEventSource=z.useEventSource;exports.useEyeDropper=G.useEyeDropper;exports.useFavicon=Q.useFavicon;exports.useField=X.useField;exports.useFileDialog=Z.useFileDialog;exports.useFocus=j.useFocus;exports.useFps=J.useFps;exports.useFul=Y.useFul;exports.useFullscreen=$.useFullscreen;exports.mapGamepadToXbox360Controller=i.mapGamepadToXbox360Controller;exports.useGamepad=i.useGamepad;exports.useGeolocation=ee.useGeolocation;exports.useHash=se.useHash;exports.isHotkeyMatch=n.isHotkeyMatch;exports.useHotkeys=n.useHotkeys;exports.useHover=ue.useHover;exports.useIdle=re.useIdle;exports.useImage=te.useImage;exports.useInfiniteScroll=oe.useInfiniteScroll;exports.useIntersectionObserver=ie.useIntersectionObserver;exports.useInterval=ne.useInterval;exports.useIsFirstRender=ce.useIsFirstRender;exports.useIsomorphicLayoutEffect=ae.useIsomorphicLayoutEffect;exports.useKeyboard=le.useKeyboard;exports.useKeyPress=qe.useKeyPress;exports.useKeyPressEvent=Se.useKeyPressEvent;exports.useKeysPressed=de.useKeysPressed;exports.useLastChanged=ge.useLastChanged;exports.useLatest=Te.useLatest;exports.useLess=Pe.useLess;exports.useList=Ce.useList;exports.useLocalStorage=Ee.useLocalStorage;exports.useLockCallback=pe.useLockCallback;exports.useLogger=me.useLogger;exports.useLongPress=ye.useLongPress;exports.useMap=Re.useMap;exports.useMeasure=Oe.useMeasure;exports.useMediaQuery=ke.useMediaQuery;exports.useMemory=Ie.useMemory;exports.useMount=ve.useMount;exports.useMouse=De.useMouse;exports.useMutation=be.useMutation;exports.useMutationObserver=Ae.useMutationObserver;exports.getConnection=c.getConnection;exports.useNetwork=c.useNetwork;exports.useOffsetPagination=Le.useOffsetPagination;exports.useOnce=Me.useOnce;exports.useOnline=fe.useOnline;exports.getOperatingSystem=a.getOperatingSystem;exports.useOperatingSystem=a.useOperatingSystem;exports.useOptimistic=he.useOptimistic;exports.useOrientation=_e.useOrientation;exports.useOtpCredential=Ne.useOtpCredential;exports.usePageLeave=Be.usePageLeave;exports.Paint=r.Paint;exports.Pointer=r.Pointer;exports.usePaint=r.usePaint;exports.useParallax=Ke.useParallax;exports.usePerformanceObserver=Fe.usePerformanceObserver;exports.usePermission=Ve.usePermission;exports.usePointerLock=we.usePointerLock;exports.usePostMessage=We.usePostMessage;exports.usePreferredColorScheme=xe.usePreferredColorScheme;exports.usePreferredContrast=He.usePreferredContrast;exports.usePreferredDark=Ue.usePreferredDark;exports.usePreferredLanguages=ze.usePreferredLanguages;exports.usePreferredReducedMotion=Ge.usePreferredReducedMotion;exports.usePrevious=Qe.usePrevious;exports.useQuery=Xe.useQuery;exports.useQueue=Ze.useQueue;exports.useRaf=je.useRaf;exports.useRafValue=Je.useRafValue;exports.useRefState=Ye.useRefState;exports.useRenderCount=$e.useRenderCount;exports.useRenderInfo=es.useRenderInfo;exports.useRerender=ss.useRerender;exports.useResizeObserver=us.useResizeObserver;exports.useScreenOrientation=rs.useScreenOrientation;exports.SCRIPT_STATUS_ATTRIBUTE_NAME=l.SCRIPT_STATUS_ATTRIBUTE_NAME;exports.useScript=l.useScript;exports.useScroll=ts.useScroll;exports.useScrollIntoView=os.useScrollIntoView;exports.useScrollTo=is.useScrollTo;exports.useSessionStorage=ns.useSessionStorage;exports.useSet=cs.useSet;exports.useShare=as.useShare;exports.getSpeechRecognition=q.getSpeechRecognition;exports.useSpeechRecognition=q.useSpeechRecognition;exports.useSpeechSynthesis=ls.useSpeechSynthesis;exports.useStateHistory=qs.useStateHistory;exports.useStep=Ss.useStep;exports.useSticky=ds.useSticky;exports.useStopwatch=gs.useStopwatch;exports.STORAGE_EVENT=t.STORAGE_EVENT;exports.dispatchStorageEvent=t.dispatchStorageEvent;exports.useStorage=t.useStorage;exports.useTextDirection=Ts.useTextDirection;exports.getRangesSelection=S.getRangesSelection;exports.useTextSelection=S.useTextSelection;exports.useThrottleCallback=Ps.useThrottleCallback;exports.useThrottleValue=Cs.useThrottleValue;exports.useTime=Es.useTime;exports.useTimeout=ps.useTimeout;exports.getTimeFromSeconds=d.getTimeFromSeconds;exports.useTimer=d.useTimer;exports.useToggle=ms.useToggle;exports.useUnmount=ys.useUnmount;exports.useVibrate=Rs.useVibrate;exports.useWakeLock=Os.useWakeLock;exports.useWebSocket=ks.useWebSocket;exports.useWindowEvent=Is.useWindowEvent;exports.useWindowFocus=vs.useWindowFocus;exports.scrollTo=g.scrollTo;exports.useWindowScroll=g.useWindowScroll;exports.useWindowSize=Ds.useWindowSize;exports.useWizard=bs.useWizard;exports.copy=T.copy;exports.legacyCopyToClipboard=T.legacyCopyToClipboard;exports.debounce=As.debounce;exports.getDate=Ls.getDate;exports.getElement=o.getElement;exports.target=o.target;exports.targetSymbol=o.targetSymbol;exports.getRetry=Ms.getRetry;exports.isTarget=fs.isTarget;exports.throttle=hs.throttle;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\
|
|
1
|
+
{"version":3,"file":"useDidUpdate.mjs","sources":["../../../../src/hooks/useDidUpdate/useDidUpdate.ts"],"sourcesContent":["import type { DependencyList, EffectCallback } from 'react';\n\nimport { useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect';\n\n/**\n * @name useDidUpdate\n * @description – Hook that triggers the effect callback on updates\n * @category Lifecycle\n *\n * @param {EffectCallback} effect The effect callback\n * @param {DependencyList} [deps] The dependencies list for the effect\n *\n * @example\n * useDidUpdate(() => console.log(\"effect runs on updates\"), deps);\n */\nexport const useDidUpdate = (effect: EffectCallback, deps?: DependencyList) => {\n const mounted = useRef(false);\n\n useIsomorphicLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n\n useIsomorphicLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n return undefined;\n }, deps);\n};\n"],"names":["useDidUpdate","effect","deps","mounted","useRef","useIsomorphicLayoutEffect"],"mappings":";;AAiBa,MAAAA,IAAe,CAACC,GAAwBC,MAA0B;AACvE,QAAAC,IAAUC,EAAO,EAAK;AAE5B,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAAF,EAAQ,UAAU;AAAA,IACpB;AAAA,IACA,CAAA;AAAA,EACF,GAEAE,EAA0B,MAAM;AAC9B,QAAIF,EAAQ;AACV,aAAOF,EAAO;AAGhB,IAAAE,EAAQ,UAAU;AAAA,KAEjBD,CAAI;AACT;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { useRef as b, useState as h, useEffect as j } from "react";
|
|
2
|
+
import { useRefState as k } from "../useRefState/useRefState.mjs";
|
|
3
|
+
import { isTarget as A } from "../../utils/helpers/isTarget.mjs";
|
|
4
|
+
import { getElement as S } from "../../utils/helpers/getElement.mjs";
|
|
5
|
+
const B = (...o) => {
|
|
6
|
+
const s = A(o[0]) ? o[0] : void 0, t = s ? typeof o[1] == "object" ? o[1] : { onDrop: o[1] } : typeof o[0] == "object" ? o[0] : { onDrop: o[0] }, u = k(), c = b(0), [g, V] = h(null), [E, v] = h(!1), a = t.dataTypes, F = (e) => {
|
|
7
|
+
if (!e.dataTransfer) return null;
|
|
8
|
+
const n = Array.from(e.dataTransfer.files);
|
|
9
|
+
return t.multiple ? n : n.length ? [n[0]] : null;
|
|
10
|
+
}, R = (e) => a ? typeof a == "function" ? a(e) : a.length ? e.length ? e.every((n) => (console.log("type", n), console.log("dataTypes", a), a.some((f) => n.includes(f)))) : !1 : !0 : !0, O = (e) => {
|
|
11
|
+
const n = Array.from(e).map((l) => l.type), f = R(n), i = t.multiple || e.length <= 1;
|
|
12
|
+
return f && i;
|
|
13
|
+
};
|
|
14
|
+
return j(() => {
|
|
15
|
+
if (!s && !u.state) return;
|
|
16
|
+
const e = s ? S(s) : u.current;
|
|
17
|
+
if (!e) return;
|
|
18
|
+
const n = (r, d) => {
|
|
19
|
+
var T, y, D, L;
|
|
20
|
+
if (!r.dataTransfer) return;
|
|
21
|
+
if (!O(r.dataTransfer.items)) {
|
|
22
|
+
r.dataTransfer.dropEffect = "none";
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
r.preventDefault(), r.dataTransfer.dropEffect = "copy";
|
|
26
|
+
const p = F(r);
|
|
27
|
+
if (d === "drop") {
|
|
28
|
+
c.current = 0, v(!1), V(p), (T = t.onDrop) == null || T.call(t, p, r);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (d === "enter") {
|
|
32
|
+
c.current += 1, v(!0), (y = t.onEnter) == null || y.call(t, r);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (d === "leave") {
|
|
36
|
+
if (c.current -= 1, c.current !== 0) return;
|
|
37
|
+
v(!1), (D = t.onLeave) == null || D.call(t, r);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
d === "over" && ((L = t.onOver) == null || L.call(t, r));
|
|
41
|
+
}, f = (r) => n(r, "drop"), i = (r) => n(r, "over"), l = (r) => n(r, "enter"), m = (r) => n(r, "leave");
|
|
42
|
+
return e.addEventListener("dragenter", l), e.addEventListener("dragover", i), e.addEventListener("dragleave", m), e.addEventListener("drop", f), () => {
|
|
43
|
+
e.removeEventListener("dragenter", l), e.removeEventListener("dragover", i), e.removeEventListener("dragleave", m), e.removeEventListener("drop", f);
|
|
44
|
+
};
|
|
45
|
+
}, [s, u.current]), s ? { overed: E, files: g } : { ref: u, overed: E, files: g };
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
B as useDropZone
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=useDropZone.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDropZone.mjs","sources":["../../../../src/hooks/useDropZone/useDropZone.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\nexport type DropZoneDataTypes = ((types: string[]) => boolean) | string[];\n\nexport interface UseDropZoneOptions {\n /** The data types for drop zone */\n dataTypes?: DropZoneDataTypes;\n /** The multiple mode for drop zone */\n multiple?: boolean;\n /** The on drop callback */\n onDrop?: (files: File[] | null, event: DragEvent) => void;\n /** The on enter callback */\n onEnter?: (event: DragEvent) => void;\n /** The on leave callback */\n onLeave?: (event: DragEvent) => void;\n /** The on over callback */\n onOver?: (event: DragEvent) => void;\n}\n\nexport interface UseDropZoneReturn {\n /** The files that was dropped in drop zone */\n files: File[] | null;\n /** The over drop zone status */\n overed: boolean;\n}\n\nexport interface UseDropZone {\n (\n target: HookTarget,\n callback?: (files: File[] | null, event: DragEvent) => void\n ): UseDropZoneReturn;\n\n <Target extends Element>(\n callback?: (files: File[] | null, event: DragEvent) => void,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n\n (target: HookTarget, options?: UseDropZoneOptions): UseDropZoneReturn;\n\n <Target extends Element>(\n options?: UseDropZoneOptions,\n target?: never\n ): UseDropZoneReturn & {\n ref: StateRef<Target>;\n };\n}\n\n/**\n * @name useDropZone\n * @description - Hook that provides drop zone functionality\n * @category Elements\n *\n * @overload\n * @template Target The target element\n * @param {Target} target The target element drop zone's\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {[boolean, File[] | null]} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, options);\n *\n * @overload\n * @param {Target} target The target element drop zone's\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {[boolean, File[] | null]} The object with drop zone states\n *\n * @example\n * const { overed, files } = useDropZone(ref, () => console.log('callback'));\n *\n * @overload\n * @param {DataTypes} [options.dataTypes] The data types\n * @param {boolean} [options.multiple] The multiple mode\n * @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function\n * @param {(event: DragEvent) => void} [options.onEnter] The on enter callback function\n * @param {(event: DragEvent) => void} [options.onLeave] The on leave callback function\n * @param {(event: DragEvent) => void} [options.onOver] The on over callback function\n * @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(options);\n *\n * @overload\n * @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop\n * @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref\n *\n * @example\n * const { ref, overed, files } = useDropZone(() => console.log('callback'));\n */\n\nexport const useDropZone = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onDrop: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onDrop: params[0] }\n ) as UseDropZoneOptions;\n\n const internalRef = useRefState<Element>();\n\n const counterRef = useRef(0);\n const [files, setFiles] = useState<File[] | null>(null);\n const [overed, setOvered] = useState(false);\n\n const dataTypes = options.dataTypes;\n\n const getFiles = (event: DragEvent) => {\n if (!event.dataTransfer) return null;\n const list = Array.from(event.dataTransfer.files);\n if (options.multiple) return list;\n if (!list.length) return null;\n return [list[0]];\n };\n\n const checkDataTypes = (types: string[]) => {\n if (!dataTypes) return true;\n if (typeof dataTypes === 'function') return dataTypes(types);\n if (!dataTypes.length) return true;\n if (!types.length) return false;\n\n return types.every((type) => {\n console.log('type', type);\n console.log('dataTypes', dataTypes);\n return dataTypes.some((dataType) => type.includes(dataType));\n });\n };\n\n const checkValidity = (items: DataTransferItemList) => {\n const types = Array.from(items).map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = options.multiple || items.length <= 1;\n\n return dataTypesValid && multipleFilesValid;\n };\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n\n const element = target ? getElement(target) : internalRef.current;\n\n if (!element) return;\n\n const onEvent = (event: DragEvent, type: 'drop' | 'enter' | 'leave' | 'over') => {\n if (!event.dataTransfer) return;\n\n const isValid = checkValidity(event.dataTransfer.items);\n if (!isValid) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n\n const currentFiles = getFiles(event);\n\n if (type === 'drop') {\n counterRef.current = 0;\n setOvered(false);\n setFiles(currentFiles);\n options.onDrop?.(currentFiles, event);\n return;\n }\n\n if (type === 'enter') {\n counterRef.current += 1;\n setOvered(true);\n options.onEnter?.(event);\n return;\n }\n\n if (type === 'leave') {\n counterRef.current -= 1;\n if (counterRef.current !== 0) return;\n setOvered(false);\n options.onLeave?.(event);\n return;\n }\n\n if (type === 'over') options.onOver?.(event);\n };\n\n const onDrop = ((event: DragEvent) => onEvent(event, 'drop')) as EventListener;\n const onDragOver = ((event: DragEvent) => onEvent(event, 'over')) as EventListener;\n const onDragEnter = ((event: DragEvent) => onEvent(event, 'enter')) as EventListener;\n const onDragLeave = ((event: DragEvent) => onEvent(event, 'leave')) as EventListener;\n\n element.addEventListener('dragenter', onDragEnter);\n element.addEventListener('dragover', onDragOver);\n element.addEventListener('dragleave', onDragLeave);\n element.addEventListener('drop', onDrop);\n\n return () => {\n element.removeEventListener('dragenter', onDragEnter);\n element.removeEventListener('dragover', onDragOver);\n element.removeEventListener('dragleave', onDragLeave);\n element.removeEventListener('drop', onDrop);\n };\n }, [target, internalRef.current]);\n\n if (target) return { overed, files };\n return { ref: internalRef, overed, files };\n}) as UseDropZone;\n"],"names":["useDropZone","params","target","isTarget","options","internalRef","useRefState","counterRef","useRef","files","setFiles","useState","overed","setOvered","dataTypes","getFiles","event","list","checkDataTypes","types","type","dataType","checkValidity","items","item","dataTypesValid","multipleFilesValid","useEffect","element","getElement","onEvent","currentFiles","_a","_b","_c","_d","onDrop","onDragOver","onDragEnter","onDragLeave"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useState as l, useRef as S, useEffect as T } from "react";
|
|
2
|
+
import { getRetry as h } from "../../utils/helpers/getRetry.mjs";
|
|
3
|
+
const k = (R, w = [], e = {}) => {
|
|
4
|
+
const [I, y] = l(!1), [O, m] = l(!1), [x, D] = l(!1), d = S(e != null && e.retry ? h(e.retry) : 0), [L, g] = l(void 0), [M, v] = l(e == null ? void 0 : e.placeholderData), c = S(void 0), C = e.immediately ?? !0, t = () => {
|
|
5
|
+
c.current && (c.current.close(), c.current = void 0, m(!1), y(!1), D(!1));
|
|
6
|
+
}, E = () => {
|
|
7
|
+
t();
|
|
8
|
+
const u = new EventSource(R, { withCredentials: e.withCredentials ?? !1 });
|
|
9
|
+
c.current = u, y(!0), u.onopen = () => {
|
|
10
|
+
var r;
|
|
11
|
+
m(!0), y(!1), g(void 0), (r = e == null ? void 0 : e.onOpen) == null || r.call(e);
|
|
12
|
+
}, u.onerror = (r) => {
|
|
13
|
+
var a;
|
|
14
|
+
if (m(!1), y(!1), D(!0), g(r), (a = e == null ? void 0 : e.onError) == null || a.call(e, r), d.current > 0) {
|
|
15
|
+
d.current -= 1;
|
|
16
|
+
const f = typeof (e == null ? void 0 : e.retryDelay) == "function" ? e == null ? void 0 : e.retryDelay(d.current, r) : e == null ? void 0 : e.retryDelay;
|
|
17
|
+
if (f) {
|
|
18
|
+
setTimeout(E, f);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
d.current = e != null && e.retry ? h(e.retry) : 0;
|
|
23
|
+
}, u.onmessage = (r) => {
|
|
24
|
+
var f;
|
|
25
|
+
const a = e != null && e.select ? e == null ? void 0 : e.select(r.data) : r.data;
|
|
26
|
+
v(a), (f = e == null ? void 0 : e.onMessage) == null || f.call(e, r);
|
|
27
|
+
}, w.forEach((r) => {
|
|
28
|
+
u.addEventListener(r, (a) => {
|
|
29
|
+
v(a.data);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
return T(() => {
|
|
34
|
+
if (C)
|
|
35
|
+
return E(), () => {
|
|
36
|
+
t();
|
|
37
|
+
};
|
|
38
|
+
}, [C]), {
|
|
39
|
+
instance: c.current,
|
|
40
|
+
data: M,
|
|
41
|
+
error: L,
|
|
42
|
+
isConnecting: I,
|
|
43
|
+
isOpen: O,
|
|
44
|
+
isError: x,
|
|
45
|
+
close: t,
|
|
46
|
+
open: E
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
k as useEventSource
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=useEventSource.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEventSource.mjs","sources":["../../../../src/hooks/useEventSource/useEventSource.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport { getRetry } from '@/utils/helpers';\n\n/** The use event source options type */\nexport interface UseEventSourceOptions<QueryData, Data> extends EventSourceInit {\n /** Immediately open the connection when calling this hook */\n immediately?: boolean;\n /* The placeholder data for the hook */\n placeholderData?: (() => Data) | Data;\n /* The retry count of requests */\n retry?: boolean | number;\n /* The retry delay of requests */\n retryDelay?: ((retry: number, event: Event) => number) | number;\n /* The onError function to be invoked */\n onError?: (error: Event) => void;\n /* The onMessage function to be invoked */\n onMessage?: (event: Event & { data?: Data }) => void;\n /* The onOpen function to be invoked */\n onOpen?: () => void;\n /* The select function to be invoked */\n select?: (data: QueryData) => Data;\n}\n\n/** The use event source return type */\ninterface UseEventSourceReturn<Data = any> {\n /** The latest data received via the EventSource */\n data?: Data;\n /** The current error */\n error?: Event;\n /** The instance of the EventSource */\n instance?: EventSource;\n /* The connecting state of the query */\n isConnecting: boolean;\n /* The error state of the query */\n isError: boolean;\n /* The open state of the query */\n isOpen: boolean;\n /** Closes the EventSource connection gracefully */\n close: () => void;\n /** Reopen the EventSource connection */\n open: () => void;\n}\n\n/**\n * @name useEventSource\n * @description - Hook that provides a reactive wrapper for event source\n * @category Browser\n *\n * @browserapi EventSource https://developer.mozilla.org/en-US/docs/Web/API/EventSource\n *\n * @param {string | URL} url The URL of the EventSource\n * @param {string[]} [events=[]] List of events to listen to\n * @param {UseEventSourceOptions} [options={}] Configuration options\n * @returns {UseEventSourceReturn<Data>} The EventSource state and controls\n *\n * @example\n * const { instance, data, isConnecting, isOpen, isError, close, open } = useEventSource('url', ['message']);\n */\nexport const useEventSource = <QueryData = any, Data = QueryData>(\n url: string | URL,\n events: string[] = [],\n options: UseEventSourceOptions<QueryData, Data> = {}\n): UseEventSourceReturn<Data> => {\n const [isConnecting, setIsConnecting] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const [isError, setIsError] = useState(false);\n\n const retryCountRef = useRef(options?.retry ? getRetry(options.retry) : 0);\n const [error, setError] = useState<Event | undefined>(undefined);\n const [data, setData] = useState<Data | undefined>(options?.placeholderData);\n\n const eventSourceRef = useRef<EventSource>(undefined);\n\n const immediately = options.immediately ?? true;\n\n const close = () => {\n if (!eventSourceRef.current) return;\n\n eventSourceRef.current.close();\n eventSourceRef.current = undefined;\n setIsOpen(false);\n setIsConnecting(false);\n setIsError(false);\n };\n\n const open = () => {\n close();\n\n const eventSource = new EventSource(url, { withCredentials: options.withCredentials ?? false });\n eventSourceRef.current = eventSource;\n\n setIsConnecting(true);\n\n eventSource.onopen = () => {\n setIsOpen(true);\n setIsConnecting(false);\n setError(undefined);\n options?.onOpen?.();\n };\n\n eventSource.onerror = (event) => {\n setIsOpen(false);\n setIsConnecting(false);\n setIsError(true);\n setError(event);\n options?.onError?.(event);\n\n if (retryCountRef.current > 0) {\n retryCountRef.current -= 1;\n\n const retryDelay =\n typeof options?.retryDelay === 'function'\n ? options?.retryDelay(retryCountRef.current, event)\n : options?.retryDelay;\n\n if (retryDelay) {\n setTimeout(open, retryDelay);\n return;\n }\n }\n\n retryCountRef.current = options?.retry ? getRetry(options.retry) : 0;\n };\n\n eventSource.onmessage = (event) => {\n const data = options?.select ? options?.select(event.data) : event.data;\n setData(data);\n options?.onMessage?.(event);\n };\n\n events.forEach((eventName) => {\n eventSource.addEventListener(eventName, (event: Event & { data?: Data }) => {\n setData(event.data);\n });\n });\n };\n\n useEffect(() => {\n if (!immediately) return;\n\n open();\n return () => {\n close();\n };\n }, [immediately]);\n\n return {\n instance: eventSourceRef.current,\n data,\n error,\n isConnecting,\n isOpen,\n isError,\n close,\n open\n };\n};\n"],"names":["useEventSource","url","events","options","isConnecting","setIsConnecting","useState","isOpen","setIsOpen","isError","setIsError","retryCountRef","useRef","getRetry","error","setError","data","setData","eventSourceRef","immediately","close","open","eventSource","_a","event","retryDelay","eventName","useEffect"],"mappings":";;AA2Da,MAAAA,IAAiB,CAC5BC,GACAC,IAAmB,CAAA,GACnBC,IAAkD,CAAA,MACnB;AAC/B,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChD,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK,GACpC,CAACG,GAASC,CAAU,IAAIJ,EAAS,EAAK,GAEtCK,IAAgBC,EAAOT,KAAA,QAAAA,EAAS,QAAQU,EAASV,EAAQ,KAAK,IAAI,CAAC,GACnE,CAACW,GAAOC,CAAQ,IAAIT,EAA4B,MAAS,GACzD,CAACU,GAAMC,CAAO,IAAIX,EAA2BH,KAAA,gBAAAA,EAAS,eAAe,GAErEe,IAAiBN,EAAoB,MAAS,GAE9CO,IAAchB,EAAQ,eAAe,IAErCiB,IAAQ,MAAM;AACd,IAACF,EAAe,YAEpBA,EAAe,QAAQ,MAAM,GAC7BA,EAAe,UAAU,QACzBV,EAAU,EAAK,GACfH,EAAgB,EAAK,GACrBK,EAAW,EAAK;AAAA,EAClB,GAEMW,IAAO,MAAM;AACX,IAAAD,EAAA;AAEA,UAAAE,IAAc,IAAI,YAAYrB,GAAK,EAAE,iBAAiBE,EAAQ,mBAAmB,IAAO;AAC9F,IAAAe,EAAe,UAAUI,GAEzBjB,EAAgB,EAAI,GAEpBiB,EAAY,SAAS,MAAM;;AACzB,MAAAd,EAAU,EAAI,GACdH,EAAgB,EAAK,GACrBU,EAAS,MAAS,IAClBQ,IAAApB,KAAA,gBAAAA,EAAS,WAAT,QAAAoB,EAAA,KAAApB;AAAA,IACF,GAEYmB,EAAA,UAAU,CAACE,MAAU;;AAO3B,UANJhB,EAAU,EAAK,GACfH,EAAgB,EAAK,GACrBK,EAAW,EAAI,GACfK,EAASS,CAAK,IACdD,IAAApB,KAAA,gBAAAA,EAAS,YAAT,QAAAoB,EAAA,KAAApB,GAAmBqB,IAEfb,EAAc,UAAU,GAAG;AAC7B,QAAAA,EAAc,WAAW;AAEnB,cAAAc,IACJ,QAAOtB,KAAA,gBAAAA,EAAS,eAAe,aAC3BA,KAAA,gBAAAA,EAAS,WAAWQ,EAAc,SAASa,KAC3CrB,KAAA,gBAAAA,EAAS;AAEf,YAAIsB,GAAY;AACd,qBAAWJ,GAAMI,CAAU;AAC3B;AAAA,QAAA;AAAA,MACF;AAGF,MAAAd,EAAc,UAAUR,KAAA,QAAAA,EAAS,QAAQU,EAASV,EAAQ,KAAK,IAAI;AAAA,IACrE,GAEYmB,EAAA,YAAY,CAACE,MAAU;;AAC3BR,YAAAA,IAAOb,KAAA,QAAAA,EAAS,SAASA,KAAA,gBAAAA,EAAS,OAAOqB,EAAM,QAAQA,EAAM;AACnE,MAAAP,EAAQD,CAAI,IACZO,IAAApB,KAAA,gBAAAA,EAAS,cAAT,QAAAoB,EAAA,KAAApB,GAAqBqB;AAAA,IACvB,GAEOtB,EAAA,QAAQ,CAACwB,MAAc;AAChB,MAAAJ,EAAA,iBAAiBI,GAAW,CAACF,MAAmC;AAC1E,QAAAP,EAAQO,EAAM,IAAI;AAAA,MAAA,CACnB;AAAA,IAAA,CACF;AAAA,EACH;AAEA,SAAAG,EAAU,MAAM;AACd,QAAKR;AAEA,aAAAE,EAAA,GACE,MAAM;AACL,QAAAD,EAAA;AAAA,MACR;AAAA,EAAA,GACC,CAACD,CAAW,CAAC,GAET;AAAA,IACL,UAAUD,EAAe;AAAA,IACzB,MAAAF;AAAA,IACA,OAAAF;AAAA,IACA,cAAAV;AAAA,IACA,QAAAG;AAAA,IACA,SAAAE;AAAA,IACA,OAAAW;AAAA,IACA,MAAAC;AAAA,EACF;AACF;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { useState as
|
|
1
|
+
import { useState as m, useRef as L, useEffect as d } from "react";
|
|
2
2
|
import { useRefState as g } from "../useRefState/useRefState.mjs";
|
|
3
3
|
import { isTarget as y } from "../../utils/helpers/isTarget.mjs";
|
|
4
4
|
import { getElement as R } from "../../utils/helpers/getElement.mjs";
|
|
5
5
|
const H = (...t) => {
|
|
6
|
-
const n = y(t[0]) ? t[0] : void 0, f = n ? typeof t[1] == "object" ? t[1] : { onEntry: t[1] } : typeof t[0] == "object" ? t[0] : { onEntry: t[0] }, [c, v] =
|
|
6
|
+
const n = y(t[0]) ? t[0] : void 0, f = n ? typeof t[1] == "object" ? t[1] : { onEntry: t[1] } : typeof t[0] == "object" ? t[0] : { onEntry: t[0] }, [c, v] = m(!1), s = g(), u = L(f);
|
|
7
7
|
return u.current = f, d(() => {
|
|
8
8
|
if (!n && !s.state) return;
|
|
9
9
|
const o = n ? R(n) : s.current;
|
|
@@ -11,14 +11,17 @@ const H = (...t) => {
|
|
|
11
11
|
const E = (i) => {
|
|
12
12
|
var e, r;
|
|
13
13
|
(r = (e = u.current) == null ? void 0 : e.onEntry) == null || r.call(e, i), v(!0);
|
|
14
|
-
},
|
|
14
|
+
}, l = (i) => {
|
|
15
15
|
var e, r;
|
|
16
16
|
(r = (e = u.current) == null ? void 0 : e.onLeave) == null || r.call(e, i), v(!1);
|
|
17
17
|
};
|
|
18
|
-
return o.addEventListener("mouseenter", E), o.addEventListener("mouseleave",
|
|
19
|
-
o.removeEventListener("mouseenter", E), o.removeEventListener("mouseleave",
|
|
18
|
+
return o.addEventListener("mouseenter", E), o.addEventListener("mouseleave", l), () => {
|
|
19
|
+
o.removeEventListener("mouseenter", E), o.removeEventListener("mouseleave", l);
|
|
20
20
|
};
|
|
21
|
-
}, [n, s.state]), n ? c :
|
|
21
|
+
}, [n, s.state]), n ? c : {
|
|
22
|
+
ref: s,
|
|
23
|
+
value: c
|
|
24
|
+
};
|
|
22
25
|
};
|
|
23
26
|
export {
|
|
24
27
|
H as useHover
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHover.mjs","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): boolean;\n\n (target: HookTarget, options?: UseHoverOptions): boolean;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ):
|
|
1
|
+
{"version":3,"file":"useHover.mjs","sources":["../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport type { HookTarget } from '@/utils/helpers';\n\nimport { getElement, isTarget } from '@/utils/helpers';\n\nimport type { StateRef } from '../useRefState/useRefState';\n\nimport { useRefState } from '../useRefState/useRefState';\n\n/** The use hover options type */\nexport interface UseHoverOptions {\n /** The on entry callback */\n onEntry?: (event: Event) => void;\n /** The on leave callback */\n onLeave?: (event: Event) => void;\n}\n\nexport interface UseHoverReturn {\n value: boolean;\n}\n\nexport interface UseHover {\n (target: HookTarget, callback?: (event: Event) => void): boolean;\n\n (target: HookTarget, options?: UseHoverOptions): boolean;\n\n <Target extends Element>(\n callback?: (event: Event) => void,\n target?: never\n ): { ref: StateRef<Target> } & UseHoverReturn;\n\n <Target extends Element>(\n options?: UseHoverOptions,\n target?: never\n ): { ref: StateRef<Target> } & UseHoverReturn;\n}\n\n/**\n * @name useHover\n * @description - Hook that defines the logic when hovering an element\n * @category Sensors\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, () => console.log('callback'));\n *\n * @overload\n * @param {HookTarget} target The target element to be hovered\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {boolean} The state of the hover\n *\n * @example\n * const hovering = useHover(ref, options);\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [callback] The callback function to be invoked on mouse enter\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(() => console.log('callback'));\n *\n * @overload\n * @template Target The target element\n * @param {(event: Event) => void} [options.onEntry] The callback function to be invoked on mouse enter\n * @param {(event: Event) => void} [options.onLeave] The callback function to be invoked on mouse leave\n * @returns {{ ref: StateRef<Target> } & UseHoverReturn} The state of the hover\n *\n * @example\n * const [ref, hovering] = useHover(options);\n */\nexport const useHover = ((...params: any[]) => {\n const target = (isTarget(params[0]) ? params[0] : undefined) as HookTarget | undefined;\n\n const options = (\n target\n ? typeof params[1] === 'object'\n ? params[1]\n : { onEntry: params[1] }\n : typeof params[0] === 'object'\n ? params[0]\n : { onEntry: params[0] }\n ) as UseHoverOptions | undefined;\n\n const [hovering, setHovering] = useState(false);\n const internalRef = useRefState<Element>();\n const internalOptionsRef = useRef(options);\n internalOptionsRef.current = options;\n\n useEffect(() => {\n if (!target && !internalRef.state) return;\n const element = (target ? getElement(target) : internalRef.current) as Element;\n\n if (!element) return;\n\n const onMouseEnter = (event: Event) => {\n internalOptionsRef.current?.onEntry?.(event);\n setHovering(true);\n };\n\n const onMouseLeave = (event: Event) => {\n internalOptionsRef.current?.onLeave?.(event);\n setHovering(false);\n };\n\n element.addEventListener('mouseenter', onMouseEnter);\n element.addEventListener('mouseleave', onMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', onMouseEnter);\n element.removeEventListener('mouseleave', onMouseLeave);\n };\n }, [target, internalRef.state]);\n\n if (target) return hovering;\n return {\n ref: internalRef,\n value: hovering\n } as const;\n}) as UseHover;\n"],"names":["useHover","params","target","isTarget","options","hovering","setHovering","useState","internalRef","useRefState","internalOptionsRef","useRef","useEffect","element","getElement","onMouseEnter","event","_b","_a","onMouseLeave"],"mappings":";;;;AA6Ea,MAAAA,IAAY,IAAIC,MAAkB;AACvC,QAAAC,IAAUC,EAASF,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,IAAI,QAE5CG,IACJF,IACI,OAAOD,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,SAASA,EAAO,CAAC,EAAE,IACvB,OAAOA,EAAO,CAAC,KAAM,WACnBA,EAAO,CAAC,IACR,EAAE,SAASA,EAAO,CAAC,EAAE,GAGvB,CAACI,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAcC,EAAqB,GACnCC,IAAqBC,EAAOP,CAAO;AA4BzC,SA3BAM,EAAmB,UAAUN,GAE7BQ,EAAU,MAAM;AACd,QAAI,CAACV,KAAU,CAACM,EAAY,MAAO;AACnC,UAAMK,IAAWX,IAASY,EAAWZ,CAAM,IAAIM,EAAY;AAE3D,QAAI,CAACK,EAAS;AAER,UAAAE,IAAe,CAACC,MAAiB;;AAClB,OAAAC,KAAAC,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IACtCV,EAAY,EAAI;AAAA,IAClB,GAEMa,IAAe,CAACH,MAAiB;;AAClB,OAAAC,KAAAC,IAAAR,EAAA,YAAA,gBAAAQ,EAAS,YAAT,QAAAD,EAAA,KAAAC,GAAmBF,IACtCV,EAAY,EAAK;AAAA,IACnB;AAEQ,WAAAO,EAAA,iBAAiB,cAAcE,CAAY,GAC3CF,EAAA,iBAAiB,cAAcM,CAAY,GAE5C,MAAM;AACH,MAAAN,EAAA,oBAAoB,cAAcE,CAAY,GAC9CF,EAAA,oBAAoB,cAAcM,CAAY;AAAA,IACxD;AAAA,EACC,GAAA,CAACjB,GAAQM,EAAY,KAAK,CAAC,GAE1BN,IAAeG,IACZ;AAAA,IACL,KAAKG;AAAA,IACL,OAAOH;AAAA,EACT;AACF;"}
|
|
@@ -1,49 +1,47 @@
|
|
|
1
|
-
import { useRef as h, useState as
|
|
2
|
-
import { useDidUpdate as
|
|
3
|
-
import { useMount as
|
|
1
|
+
import { useRef as h, useState as f, useEffect as U } from "react";
|
|
2
|
+
import { useDidUpdate as j } from "../useDidUpdate/useDidUpdate.mjs";
|
|
3
|
+
import { useMount as z } from "../useMount/useMount.mjs";
|
|
4
4
|
import { getRetry as q } from "../../utils/helpers/getRetry.mjs";
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
},
|
|
9
|
-
k(),
|
|
5
|
+
const N = (w, e) => {
|
|
6
|
+
const t = (e == null ? void 0 : e.enabled) ?? !0, y = h(e != null && e.retry ? q(e.retry) : 0), D = h(!1), [A, d] = f(!1), [F, v] = f(!1), [L, R] = f(!1), [x, I] = f(!1), [M, b] = f(!!(e != null && e.placeholderData)), [Q, E] = f(void 0), [T, C] = f(e == null ? void 0 : e.placeholderData), g = h(new AbortController()), S = h(void 0), m = (e == null ? void 0 : e.keys) ?? [], k = () => {
|
|
7
|
+
g.current.abort(), g.current = new AbortController();
|
|
8
|
+
}, a = (c) => {
|
|
9
|
+
k(), d(!0), c === "init" && (D.current = !0, v(!0)), c === "refetch" && I(!0), w({ signal: g.current.signal, keys: m }).then((r) => {
|
|
10
10
|
var u;
|
|
11
|
-
const
|
|
12
|
-
(u = e == null ? void 0 : e.onSuccess) == null || u.call(e,
|
|
11
|
+
const l = e != null && e.select ? e == null ? void 0 : e.select(r) : r;
|
|
12
|
+
(u = e == null ? void 0 : e.onSuccess) == null || u.call(e, l), C(l), b(!0), E(void 0), R(!1), d(!1), c === "init" && v(!1), c === "refetch" && I(!1);
|
|
13
13
|
}).catch((r) => {
|
|
14
|
-
var
|
|
15
|
-
if (
|
|
16
|
-
|
|
17
|
-
const u = typeof (e == null ? void 0 : e.retryDelay) == "function" ? e == null ? void 0 : e.retryDelay(
|
|
14
|
+
var l;
|
|
15
|
+
if (y.current > 0) {
|
|
16
|
+
y.current -= 1;
|
|
17
|
+
const u = typeof (e == null ? void 0 : e.retryDelay) == "function" ? e == null ? void 0 : e.retryDelay(y.current, r) : e == null ? void 0 : e.retryDelay;
|
|
18
18
|
if (u) {
|
|
19
|
-
setTimeout(() =>
|
|
19
|
+
setTimeout(() => a(c), u);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
return
|
|
22
|
+
return a(c);
|
|
23
23
|
}
|
|
24
|
-
(
|
|
24
|
+
(l = e == null ? void 0 : e.onError) == null || l.call(e, r), C(void 0), b(!1), E(r), R(!0), d(!1), c === "init" && v(!1), c === "refetch" && I(!1), y.current = e != null && e.retry ? q(e.retry) : 0;
|
|
25
25
|
}).finally(() => {
|
|
26
26
|
if (e != null && e.refetchInterval) {
|
|
27
27
|
const r = setInterval(() => {
|
|
28
|
-
clearInterval(r),
|
|
28
|
+
clearInterval(r), a("refetch");
|
|
29
29
|
}, e == null ? void 0 : e.refetchInterval);
|
|
30
30
|
S.current = r;
|
|
31
31
|
}
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}),
|
|
37
|
-
|
|
38
|
-
}, [
|
|
34
|
+
return z(() => {
|
|
35
|
+
t && a("init");
|
|
36
|
+
}), j(() => {
|
|
37
|
+
t && a(D.current ? "refetch" : "init");
|
|
38
|
+
}, [t, ...m]), U(() => () => {
|
|
39
39
|
clearInterval(S.current);
|
|
40
|
-
}, [
|
|
41
|
-
const U = () => l("refetch"), j = typeof (e == null ? void 0 : e.placeholderData) == "function" ? (e == null ? void 0 : e.placeholderData).call(e) : e == null ? void 0 : e.placeholderData;
|
|
42
|
-
return {
|
|
40
|
+
}, [t, e == null ? void 0 : e.refetchInterval, e == null ? void 0 : e.retry, ...m]), {
|
|
43
41
|
abort: k,
|
|
44
|
-
data: T
|
|
42
|
+
data: T,
|
|
45
43
|
error: Q,
|
|
46
|
-
refetch:
|
|
44
|
+
refetch: () => a("refetch"),
|
|
47
45
|
isFetching: A,
|
|
48
46
|
isLoading: F,
|
|
49
47
|
isError: L,
|
|
@@ -52,6 +50,6 @@ const O = (w, e) => {
|
|
|
52
50
|
};
|
|
53
51
|
};
|
|
54
52
|
export {
|
|
55
|
-
|
|
53
|
+
N as useQuery
|
|
56
54
|
};
|
|
57
55
|
//# sourceMappingURL=useQuery.mjs.map
|