UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 1.65 kB
{"version":3,"file":"useListener.mjs","sources":["../../src/hooks/useListener.tsx"],"sourcesContent":["import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * @param updateSize\n */\nexport function useListener(type: string, listener: () => void): void {\n onMounted(() => {\n window.addEventListener(type, listener);\n });\n\n onBeforeUnmount(() => {\n window.removeEventListener(type, listener);\n });\n}\n\nexport function useResize(listener: () => void, observer?: HTMLElement) {\n useListener('resize', listener);\n\n let resizeObserver: ResizeObserver = null;\n\n onMounted(() => {\n if (!window.ResizeObserver || !observer) return;\n resizeObserver = new window.ResizeObserver(listener);\n resizeObserver.observe(observer);\n });\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n });\n}\n"],"names":["onMounted","window","onBeforeUnmount","useListener","resizeObserver"],"mappings":";;;;;;;;AAKO,SAAA,WAAA,CAAA,IAAA,EAAA,QAAA,EAAA;AACLA,EAAAA,SAAAA,CAAAA,YAAAA;AACSC,IAAAA,MAAAA,CAAAA,gBAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AACT,GAAA,CAAA,CAAA;AAEAC,EAAAA,eAAAA,CAAAA,YAAAA;AACSD,IAAAA,MAAAA,CAAAA,mBAAAA,CAAAA,IAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AACT,GAAA,CAAA,CAAA;AACF,CAAA;AAEO,SAAA,SAAA,CAAA,QAAA,EAAA,QAAA,EAAA;AACLE,EAAAA,WAAAA,CAAAA,QAAAA,EAAAA,QAAAA,CAAAA,CAAAA;;AAIAH,EAAAA,SAAAA,CAAAA,YAAAA;AACM,IAAA,IAAA,CAAA,MAAA,CAAA,cAAA,IAAA,CAAA,QAAA,EAAA,OAAA;AACaI,IAAAA,cAAAA,GAAAA,IAAAA,MAAAA,CAAAA,cAAAA,CAAAA,QAAAA,CAAAA,CAAAA;AACjBA,IAAAA,cAAAA,CAAAA,OAAAA,CAAAA,QAAAA,CAAAA,CAAAA;AACF,GAAA,CAAA,CAAA;AAEAF,EAAAA,eAAAA,CAAAA,YAAAA;AAAsB,IAAA,IAAA,eAAA,CAAA;;AAEtB,GAAA,CAAA,CAAA;AACF;;;;"}