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) }) }