UNPKG

vue-hooks-plus

Version:
25 lines (24 loc) 601 B
import isDocumentVisible from "./isDocumentVisible"; import { canUseDom } from "./utils"; const listeners = []; function subscribe(listener) { listeners.push(listener); return function unsubscribe() { const index = listeners.indexOf(listener); listeners.splice(index, 1); }; } if (canUseDom()) { const revalidate = () => { if (!isDocumentVisible()) return; for (let i = 0; i < listeners.length; i++) { const listener = listeners[i]; listener(); } }; window.addEventListener("visibilitychange", revalidate, false); } export { subscribe as default };