Skip to content

useWakeLock – Screen Wake Lock Hook for React

Overview

Manages the Screen Wake Lock API. Automatically re-acquires on tab re-focus and cleans up on unmount. SSR-safe — isSupported will be false on the server.

Usage

import { useWakeLock } from "react-visibility-hooks";
function PresentationMode() {
const { isActive, isSupported, request, release } = useWakeLock();
if (!isSupported) return <p>Wake Lock not supported</p>;
return (
<div>
<p>Screen lock: {isActive ? "ON" : "OFF"}</p>
<button onClick={isActive ? release : request}>
{isActive ? "Allow screen lock" : "Keep screen on"}
</button>
</div>
);
}

Disable auto-reacquire

// Won't re-request when switching tabs back
const { isActive, request, release } = useWakeLock(false);

API

Parameters

ParameterTypeDefaultDescription
autoReacquirebooleantrueRe-request lock when the tab becomes visible again

Returns (WakeLockResult)

PropertyTypeDescription
isActivebooleantrue while a Wake Lock is held
request() => Promise<void>Request the screen Wake Lock. No-ops if unsupported.
release() => Promise<void>Release the current Wake Lock
isSupportedbooleantrue when the Screen Wake Lock API is available