UNPKG

@slan-health/taro-vueuse

Version:

taro vue版本hooks

40 lines (39 loc) 1.27 kB
import { computed, watchEffect, onUnmounted } from "vue"; import { definePlugin } from "../definePlugin.js"; import { refToRaw } from "../utils/index.js"; import limitTrigger from "../utils/limitTrigger.js"; import usePageFocus from "./taro/usePageFocus.js"; const useRefreshOnWindowFocus = definePlugin( (queryInstance, { refreshOnWindowFocus = false, refocusTimespan = 5e3 }) => { const refreshOnWindowFocusRef = computed( () => refToRaw(refreshOnWindowFocus) ); const refocusTimespanRef = computed(() => refToRaw(refocusTimespan)); const unsubscribeList = []; const addUnsubscribeList = (event) => { event && unsubscribeList.push(event); }; const unsubscribe = () => { unsubscribeList.forEach((fn) => fn()); }; const subscribe = usePageFocus(); watchEffect(() => { unsubscribe(); if (refreshOnWindowFocusRef.value) { const limitRefresh = limitTrigger( queryInstance.context.refresh, refocusTimespanRef.value ); addUnsubscribeList(subscribe(limitRefresh)); } }); onUnmounted(() => { unsubscribe(); }); return {}; } ); export { useRefreshOnWindowFocus as default }; //# sourceMappingURL=useRefreshOnWindowFocus.js.map