UNPKG

@stackoverfloweth/vue-compositions

Version:

A collection of reusable vue compositions.

45 lines 1.26 kB
import { onMounted, onUnmounted, ref } from 'vue'; export function useMutationObserver(callback) { let mutationObserver = null; const observe = (element, options) => { const elementRef = ref(element); const observer = getObserver(); if (elementRef.value) { observer.observe(elementRef.value, options); } }; const disconnect = () => { const observer = getObserver(); observer.disconnect(); }; const check = (element, options) => { const elementRef = ref(element); if (!elementRef.value) { return; } const observer = new MutationObserver(callback); observer.observe(elementRef.value, options); setTimeout(() => observer.disconnect(), 100); }; function getObserver() { if (!mutationObserver) { createObserver(); } return mutationObserver; } function createObserver() { mutationObserver = new MutationObserver(callback); } onMounted(() => { createObserver(); }); onUnmounted(() => { disconnect(); }); return { observe, disconnect, check, }; } //# sourceMappingURL=useMutationObserver.js.map