UNPKG

tdesign-vue-next

Version:
1 lines 1.9 kB
{"version":3,"file":"useListener.mjs","sources":["../../../components/hooks/useListener.tsx"],"sourcesContent":["import { onBeforeUnmount, onMounted } from 'vue';\n\n/**\n * 用于订阅Listener事件\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":["useListener","type","listener","onMounted","window","addEventListener","onBeforeUnmount","removeEventListener","useResize","observer","resizeObserver","ResizeObserver","observe","_resizeObserver","disconnect"],"mappings":";;;;;;;;AAMgB,SAAAA,WAAAA,CAAYC,MAAcC,QAA4B,EAAA;AACpEC,EAAAA,SAAA,CAAU,YAAM;AACPC,IAAAA,MAAA,CAAAC,gBAAA,CAAiBJ,MAAMC,QAAQ,CAAA,CAAA;AACxC,GAAC,CAAA,CAAA;AAEDI,EAAAA,eAAA,CAAgB,YAAM;AACbF,IAAAA,MAAA,CAAAG,mBAAA,CAAoBN,MAAMC,QAAQ,CAAA,CAAA;AAC3C,GAAC,CAAA,CAAA;AACH,CAAA;AAEgB,SAAAM,SAAAA,CAAUN,UAAsBO,QAAwB,EAAA;AACtET,EAAAA,WAAA,CAAY,UAAUE,QAAQ,CAAA,CAAA;EAE9B,IAAIQ,cAAiC,GAAA,IAAA,CAAA;AAErCP,EAAAA,SAAA,CAAU,YAAM;AACV,IAAA,IAAA,CAACC,MAAO,CAAAO,cAAA,IAAkB,CAACF,QAAA,EAAU,OAAA;AACxBC,IAAAA,cAAA,GAAA,IAAIN,MAAO,CAAAO,cAAA,CAAeT,QAAQ,CAAA,CAAA;AACnDQ,IAAAA,cAAA,CAAeE,QAAQH,QAAQ,CAAA,CAAA;AACjC,GAAC,CAAA,CAAA;AAEDH,EAAAA,eAAA,CAAgB,YAAM;AAAA,IAAA,IAAAO,eAAA,CAAA;IACpB,CAAAA,eAAA,GAAAH,cAAA,MAAAG,IAAAA,IAAAA,eAAA,eAAAA,eAAA,CAAgBC,UAAW,EAAA,CAAA;AAC7B,GAAC,CAAA,CAAA;AACH;;;;"}