Fix race condition in `usePageVisibility` hook

This commit is contained in:
Evan Hahn 2021-10-07 13:52:07 -05:00 committed by GitHub
parent 27573e6dce
commit 1f4a3851bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 3 deletions

View File

@ -7,16 +7,18 @@ export function usePageVisibility(): boolean {
const [result, setResult] = useState(!document.hidden);
useEffect(() => {
const onVisibilityChange = () => {
const updatePageVisibility = () => {
setResult(!document.hidden);
};
document.addEventListener('visibilitychange', onVisibilityChange, false);
updatePageVisibility();
document.addEventListener('visibilitychange', updatePageVisibility, false);
return () => {
document.removeEventListener(
'visibilitychange',
onVisibilityChange,
updatePageVisibility,
false
);
};