tav-ui
Version:
1 lines • 2.28 kB
Source Map (JSON)
{"version":3,"file":"useTimeout2.mjs","sources":["../../../../../../packages/hooks/core/useTimeout.ts"],"sourcesContent":["import { ref, watch } from 'vue'\nimport { tryOnUnmounted } from '@vueuse/core'\nimport { isFunction } from '@tav-ui/utils/is'\n\ndeclare interface Fn<T = any, R = T> {\n (...arg: T[]): R\n}\n\ndeclare type TimeoutHandle = ReturnType<typeof setTimeout>\n\nexport function useTimeoutFn(handle: Fn<any>, wait: number, native = false) {\n if (!isFunction(handle)) throw new Error('handle is not Function!')\n\n const { readyRef, stop, start } = useTimeoutRef(wait)\n if (native) {\n handle()\n } else {\n watch(\n readyRef,\n (maturity) => {\n maturity && handle()\n },\n { immediate: false }\n )\n }\n return { readyRef, stop, start }\n}\n\nexport function useTimeoutRef(wait: number) {\n const readyRef = ref(false)\n\n let timer: TimeoutHandle\n function stop(): void {\n readyRef.value = false\n timer && window.clearTimeout(timer)\n }\n function start(): void {\n stop()\n timer = setTimeout(() => {\n readyRef.value = true\n }, wait)\n }\n\n start()\n\n tryOnUnmounted(stop)\n\n return { readyRef, stop, start }\n}\n"],"names":[],"mappings":";;;;AAGO,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE;AAC3D,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACzB,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC/C,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACxD,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,MAAM,EAAE,CAAC;AACb,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,KAAK;AAClC,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;AAC3B,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AACM,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,SAAS,IAAI,GAAG;AAClB,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,IAAI,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM;AAC7B,MAAM,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;AAC5B,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,GAAG;AACH,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnC;;;;"}