UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 1.58 kB
{"version":3,"file":"useElementLazyRender.mjs","sources":["../../src/hooks/useElementLazyRender.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted, Ref, ref, watch } from 'vue';\nimport observe from '../_common/js/utils/observe';\n\nexport function useElementLazyRender(labelRef: Ref<HTMLElement>, lazyLoad: Ref<boolean>) {\n const ioObserver = ref<IntersectionObserver>();\n const showElement = ref(true);\n\n const handleLazyLoad = () => {\n if (!lazyLoad.value) return;\n showElement.value = false;\n const io = observe(\n labelRef.value,\n null,\n () => {\n showElement.value = true;\n },\n 10,\n );\n ioObserver.value = io;\n };\n\n onMounted(handleLazyLoad);\n\n lazyLoad.value && watch([lazyLoad], handleLazyLoad);\n\n onBeforeUnmount(() => {\n if (!lazyLoad.value) return;\n ioObserver.value?.unobserve(labelRef.value);\n });\n\n return {\n showElement,\n };\n}\n\nexport default useElementLazyRender;\n"],"names":["onBeforeUnmount","showElement"],"mappings":";;;;;;;;;AAGO,SAAA,oBAAA,CAAA,QAAA,EAAA,QAAA,EAAA;AACL,EAAA,IAAA,UAAA,GAAA,GAAA,EAAA,CAAA;AACM,EAAA,IAAA,WAAA,GAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AAEN,EAAA,IAAA,cAAA,GAAA,SAAA,cAAA,GAAA;AACE,IAAA,IAAA,CAAA,QAAA,CAAA,KAAA,EAAA,OAAA;;;;;;;;;AAiBFA,EAAAA,eAAAA,CAAAA,YAAAA;AAAsB,IAAA,IAAA,iBAAA,CAAA;AACpB,IAAA,IAAA,CAAA,QAAA,CAAA,KAAA,EAAA,OAAA;AACW,IAAA,CAAA,iBAAA,GAAA,UAAA,CAAA,KAAA,MAAA,IAAA,IAAA,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAA,SAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AACb,GAAA,CAAA,CAAA;;AAGEC,IAAAA,WAAAA,EAAAA,WAAAA;;AAEJ;;;;"}