[Glitch] Refresh thread replies periodically & when refocusing window

Port 7ea2af6ae2 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
diondiondion
2025-10-22 11:43:03 +02:00
committed by Claire
parent ee9a15031b
commit cbc07af929
4 changed files with 266 additions and 83 deletions

View File

@@ -0,0 +1,32 @@
import { useEffect, useRef, useState } from 'react';
export function useIsDocumentVisible({
onChange,
}: {
onChange?: (isVisible: boolean) => void;
} = {}) {
const [isDocumentVisible, setIsDocumentVisible] = useState(
() => document.visibilityState === 'visible',
);
const onChangeRef = useRef(onChange);
useEffect(() => {
onChangeRef.current = onChange;
}, [onChange]);
useEffect(() => {
function handleVisibilityChange() {
const isVisible = document.visibilityState === 'visible';
setIsDocumentVisible(isVisible);
onChangeRef.current?.(isVisible);
}
window.addEventListener('visibilitychange', handleVisibilityChange);
return () => {
window.removeEventListener('visibilitychange', handleVisibilityChange);
};
}, []);
return isDocumentVisible;
}