0
GitHub - jorisre/react-screen-wake-lock: 🌓 React implementation of the Screen Wa...
source link: https://github.com/jorisre/react-screen-wake-lock
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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
Features
- Follows the W3C Screen Wake Lock API specifications
- Easy to use - just one react hook
useWakeLock
- Lightweight - less than 370b
- Easily integration - it works without additional configuration (React, remix, Next.js...)
- Browser Support - Screen Wake Lock API
react-screen-wake-lock
use native Screen Wake Lock API under the hood which is not supported by all browsers.
Examples (Demo)
Installation
yarn add react-screen-wake-lock
npm i react-screen-wake-lock
Usage
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!'),
});
return (
<div>
<p>
Screen Wake Lock API supported: <b>{`${isSupported}`}</b>
<br />
Released: <b>{`${released}`}</b>
</p>
<button
type="button"
onClick={() => (released === false ? release() : request())}
>
{released === false ? 'Release' : 'Request'}
</button>
</div>
);
}
export default Component;
Props
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 |
Returns
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 |
Testing
To write tests with ease, follow this guide
Author
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK