React implementation of the Screen Wake Lock API. It provides a way to prevent devices from dimming or locking the screen when an application needs to keep running.
npm install react-screen-wake-lock
Tiniest React implementation of the Screen Wake Lock API.
It provides a way to prevent devices from dimming or locking the screen when an application needs to keep running.
Demo
路
Documentation
路
Twitter
Created by Joris
- 馃寪 Follows the W3C Screen Wake Lock API specifications
- 馃獫 Easy to use - Just one react hook useWakeLock
- 馃 Lightweight & 0 Dependency - _Less than 650b_
- 馃攲 Easily integration - _It works without additional configuration (React, remix, Next.js...)_
- 馃И Ready to test - Mocks the Screen Wake Lock with Jest
- 鈿狅笍 Browser Support - Screen Wake Lock API
``sh`
yarn add react-screen-wake-lock
or
`sh`
npm i react-screen-wake-lock
`tsx
import { useWakeLock } from 'react-screen-wake-lock';
function Component() {
const { isSupported, released, request, release } = useWakeLock({
onRequest: () => alert('Screen Wake Lock: requested!'),
onError: () => alert('An error happened 馃挜'),
onRelease: () => alert('Screen Wake Lock: released!'),
reacquireOnPageVisible: true,
});
return (
Screen Wake Lock API supported: {${isSupported}}
Released: {${released}}
export default Component;
`
| Prop | description | default | required |
| :----------------------: | :-----------------------------------------------------------: | :---------: | :------: |
| onRequest | called on successfully navigator.wakeLock.request | undefined | false |onError
| | called when caught an error from navigator.wakeLock.request | undefined | false |onRelease
| | called when wake lock is released | undefined | false |reacquireOnPageVisible
| | Reacquires the wake lock when the page becomes visible again | false | false |
| Prop | description | type | |
| :-----------: | :-----------------------------------------------------------------------------------: | :------: | --------- |
| isSupported | Browser support for the Screen Wake Lock API | boolean |released
| | Once WakeLock is released, released become true and the value never changes again | boolean | undefined |request
| | Returns a promise which allows control over screen dimming and locking | function |release` | Returns a promise that is resolved once the sentinel has been successfully released | function |
|
To write tests with ease, follow this guide
馃寛 Joris 路 @\_jorisre