UNPKG

ahooks

Version:
19 lines (18 loc) 558 B
import isBrowser from '../../../utils/isBrowser'; import isDocumentVisible from './isDocumentVisible'; const listeners = new Set(); function subscribe(listener) { listeners.add(listener); return function unsubscribe() { listeners.has(listener) && listeners.delete(listener); }; } if (isBrowser) { const revalidate = () => { if (!isDocumentVisible()) return; listeners.forEach((listener) => listener()); }; window.addEventListener('visibilitychange', revalidate, false); } export default subscribe;