rDrama/chat/src/hooks/useWindowFocus.ts

20 lines
529 B
TypeScript

import { useCallback, useEffect, useState } from "react";
export function useWindowFocus() {
const [focused, setFocused] = useState(true);
const onFocus = useCallback(() => setFocused(true), []);
const onBlur = useCallback(() => setFocused(false), []);
useEffect(() => {
window.addEventListener("focus", onFocus);
window.addEventListener("blur", onBlur);
return () => {
window.removeEventListener("focus", onFocus);
window.removeEventListener("blur", onBlur);
};
});
return focused;
}