UNPKG

rc-hooks

Version:
28 lines (27 loc) 829 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // from swr var dom_1 = require("./dom"); var listeners = []; function subscribe(listener) { listeners.push(listener); return function unsubscribe() { var index = listeners.indexOf(listener); listeners.splice(index, 1); }; } var eventsBinded = false; if (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) { var revalidate = function () { if (!(0, dom_1.isDocumentVisible)()) return; for (var i = 0; i < listeners.length; i++) { var listener = listeners[i]; listener(); } }; window.addEventListener('visibilitychange', revalidate, false); // only bind the events once eventsBinded = true; } exports.default = subscribe;