react-use-wake-lock
Version:
React hooks to make it easier to use Screen Wake Lock API
23 lines (17 loc) • 702 B
text/typescript
import { useCallback, useEffect, useState } from "react";
// Check visibility of the document to re-acquire the lock once browser is active/visible again
export default function useVisibilityObserver(): boolean {
const [isVisible, setIsVisible] = useState<boolean>(
document.visibilityState === "visible",
);
const handleVisiblilityChange = useCallback(() => {
setIsVisible(document.visibilityState === "visible");
}, []);
useEffect(() => {
document.addEventListener("visibilitychange", handleVisiblilityChange);
return () => {
document.removeEventListener("visibilitychange", handleVisiblilityChange);
};
}, [handleVisiblilityChange]);
return isVisible;
}