Skip to content

Commit 964ff15

Browse files
committed
feat: replace blur/focus event to visibility API for getSession (nextauthjs#1081)
1 parent e204323 commit 964ff15

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/client/index.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,20 @@ if (typeof window !== 'undefined') {
6767
}
6868
})
6969

70-
// Listen for window focus/blur events
71-
window.addEventListener('focus', async (event) => __NEXTAUTH._getSession({ event: 'focus' }))
72-
window.addEventListener('blur', async (event) => __NEXTAUTH._getSession({ event: 'blur' }))
70+
// Listen for document visibilitychange events
71+
let hidden, visibilityChange
72+
if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support
73+
hidden = 'hidden'
74+
visibilityChange = 'visibilitychange'
75+
} else if (typeof document.msHidden !== 'undefined') {
76+
hidden = 'msHidden'
77+
visibilityChange = 'msvisibilitychange'
78+
} else if (typeof document.webkitHidden !== 'undefined') {
79+
hidden = 'webkitHidden'
80+
visibilityChange = 'webkitvisibilitychange'
81+
}
82+
const handleVisibilityChange = () => !document[hidden] && __NEXTAUTH._getSession({ event: visibilityChange })
83+
document.addEventListener('visibilitychange', handleVisibilityChange, false)
7384
}
7485
}
7586

0 commit comments

Comments
 (0)