From 416d92c33f051c2a13219814e6deb6010e6462f5 Mon Sep 17 00:00:00 2001 From: Alex B Date: Sun, 10 Jan 2021 23:26:33 +0100 Subject: [PATCH] feat: replace blur/focus event to visibility API for getSession (#1081) --- src/client/index.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/client/index.js b/src/client/index.js index dd147051f0..f5dfea373d 100644 --- a/src/client/index.js +++ b/src/client/index.js @@ -67,9 +67,20 @@ if (typeof window !== 'undefined') { } }) - // Listen for window focus/blur events - window.addEventListener('focus', async (event) => __NEXTAUTH._getSession({ event: 'focus' })) - window.addEventListener('blur', async (event) => __NEXTAUTH._getSession({ event: 'blur' })) + // Listen for document visibilitychange events + let hidden, visibilityChange + if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support + hidden = 'hidden' + visibilityChange = 'visibilitychange' + } else if (typeof document.msHidden !== 'undefined') { + hidden = 'msHidden' + visibilityChange = 'msvisibilitychange' + } else if (typeof document.webkitHidden !== 'undefined') { + hidden = 'webkitHidden' + visibilityChange = 'webkitvisibilitychange' + } + const handleVisibilityChange = () => !document[hidden] && __NEXTAUTH._getSession({ event: visibilityChange }) + document.addEventListener('visibilitychange', handleVisibilityChange, false) } }