🔦 useTorchLight is a hook to enable/disable camera flash. Check out the demo.
You can install this library via NPM or YARN.
npm i @blackbox-vision/use-torch-light
yarn add @blackbox-vision/use-torch-light
useTorchLight relies on ImageCapture API whose spec isn't complete at all browsers currently. You can check the state of ImageCapture in browsers here.
We're currently trying to make the hook most consistent as possible by providing cross-browser checks and dispatching errors or alerts via success and error callbacks.
The usage is really simple:
import React, { useState, useRef } from 'react';
import { QrReader } from '@blackbox-vision/react-qr-reader';
import { useTorchLight } from '@blackbox-vision/use-torch-light';
const Test = (props) => {
const streamRef = useRef(null);
const [error, setError] = useState(null);
const [data, setData] = useState('No result');
const [on, toggle] = useTorchLight(streamRef.current);
const setRef = ({ stream }) => {
streamRef.current = stream;
};
return (
<>
<QrReader
onLoad={setRef}
onScan={setData}
onError={setError}
style={{ width: '100%' }}
/>
<button onClick={toggle}>{on ? 'Disable Torch' : 'Enable Torch'}</button>
<p>{JSON.stringify(data, null, 2)}</p>
<p>{JSON.stringify(error, null, 2)}</p>
</>
);
};
Please, open an issue following one of the issues templates. We will do our best to fix them.
If you want to contribute to this project see contributing for more information.
Distributed under the MIT license. See LICENSE for more information.