27 lines
722 B
JavaScript
27 lines
722 B
JavaScript
|
|
export function useRefreshNuxtDataOnResume(keys) {
|
||
|
|
const refreshKeys = Array.isArray(keys) ? keys : [keys]
|
||
|
|
let isRefreshing = false
|
||
|
|
|
||
|
|
async function refreshVisibleData() {
|
||
|
|
if (isRefreshing || document.visibilityState !== 'visible') return
|
||
|
|
|
||
|
|
isRefreshing = true
|
||
|
|
try {
|
||
|
|
await refreshNuxtData(refreshKeys)
|
||
|
|
} finally {
|
||
|
|
isRefreshing = false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
onMounted(() => {
|
||
|
|
window.addEventListener('focus', refreshVisibleData)
|
||
|
|
document.addEventListener('visibilitychange', refreshVisibleData)
|
||
|
|
refreshVisibleData()
|
||
|
|
})
|
||
|
|
|
||
|
|
onBeforeUnmount(() => {
|
||
|
|
window.removeEventListener('focus', refreshVisibleData)
|
||
|
|
document.removeEventListener('visibilitychange', refreshVisibleData)
|
||
|
|
})
|
||
|
|
}
|