0

GitHub - jorisre/react-screen-wake-lock: 🌓 React implementation of the Screen Wa...

 1 year ago
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.

last_quarter_moon 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

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

rainbowJoris · @_jorisre


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK