UNPKG

carbon-components-svelte

Version:
26 lines (22 loc) 665 B
/** * Observe the closest modal ancestor for close events. * Calls `onClose` when the modal loses the "is-visible" class. * Returns a cleanup function to disconnect the observer. * @param {HTMLElement} element * @param {() => void} onClose * @returns {() => void} */ export function observeModalClose(element, onClose) { const modal = element.closest(".bx--modal"); if (!modal) return () => {}; const observer = new MutationObserver(() => { if (!modal.classList.contains("is-visible")) { onClose(); } }); observer.observe(modal, { attributes: true, attributeFilter: ["class"], }); return () => observer.disconnect(); }