tav-ui
Version:
1 lines • 1.7 kB
Source Map (JSON)
{"version":3,"file":"useWindowSizeFn2.mjs","sources":["../../../../../../packages/hooks/event/useWindowSizeFn.ts"],"sourcesContent":["import { tryOnMounted, tryOnUnmounted, useDebounceFn } from '@vueuse/core'\n\ninterface WindowSizeOptions {\n once?: boolean\n immediate?: boolean\n listenerOptions?: AddEventListenerOptions | boolean\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useWindowSizeFn<T>(\n fn: (...arg: any[]) => any,\n wait = 150,\n options?: WindowSizeOptions\n) {\n let handler = () => {\n fn()\n }\n const handleSize = useDebounceFn(handler, wait)\n handler = handleSize\n\n const start = () => {\n if (options && options.immediate) handler()\n\n window.addEventListener('resize', handler)\n }\n\n const stop = () => {\n window.removeEventListener('resize', handler)\n }\n\n tryOnMounted(() => {\n start()\n })\n\n tryOnUnmounted(() => {\n stop()\n })\n return [start, stop]\n}\n"],"names":[],"mappings":";;AACO,SAAS,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE;AACzD,EAAE,IAAI,OAAO,GAAG,MAAM;AACtB,IAAI,EAAE,EAAE,CAAC;AACT,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClD,EAAE,OAAO,GAAG,UAAU,CAAC;AACvB,EAAE,MAAM,KAAK,GAAG,MAAM;AACtB,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS;AACpC,MAAM,OAAO,EAAE,CAAC;AAChB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,MAAM;AACrB,IAAI,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD,GAAG,CAAC;AACJ,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,cAAc,CAAC,MAAM;AACvB,IAAI,IAAI,EAAE,CAAC;AACX,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB;;;;"}