@slan-health/taro-vueuse
Version:
taro vue版本hooks
35 lines (34 loc) • 868 B
JavaScript
import { isWeb } from "./utils.js";
import useDidAgainShow from "./useDidAgainShow.js";
import useVisible from "../../../../useVisible/index.js";
function usePageReVisible() {
const visible = useVisible();
const listeners = [];
const subscribe = (listener) => {
listeners.push(listener);
return function unsubscribe() {
const index = listeners.indexOf(listener);
listeners.splice(index, 1);
};
};
const revalidate = () => {
if (!visible.value) return;
for (let i = 0; i < listeners.length; i++) {
const listener = listeners[i];
listener();
}
};
if (isWeb) {
window.addEventListener("visibilitychange", revalidate, false);
} else {
useDidAgainShow(revalidate);
}
return {
subscribe,
visible
};
}
export {
usePageReVisible as default
};
//# sourceMappingURL=usePageReVisible.js.map