react-qr-reader
Version:
A React Component for reading QR codes from the webcam
78 lines (73 loc) • 1.85 kB
text/typescript
import { BrowserQRCodeReader } from '@zxing/browser';
import { Result } from '@zxing/library';
export type QrReaderProps = {
/**
* Media track constraints object, to specify which camera and capabilities to use
*/
constraints: MediaTrackConstraints;
/**
* Called when an error occurs.
*/
onResult?: OnResultFunction;
/**
* Property that represents the view finder component
*/
ViewFinder?: (props: any) => React.ReactElement<any, any> | null;
/**
* Property that represents the scan period
*/
scanDelay?: number;
/**
* Property that represents the ID of the video element
*/
videoId?: string;
/**
* Property that represents an optional className to modify styles
*/
className?: string;
/**
* Property that represents a style for the container
*/
containerStyle?: any;
/**
* Property that represents a style for the video container
*/
videoContainerStyle?: any;
/**
* Property that represents a style for the video
*/
videoStyle?: any;
};
export type OnResultFunction = (
/**
* The QR values extracted by Zxing
*/
result?: Result | undefined | null,
/**
* The name of the exceptions thrown while reading the QR
*/
error?: Error | undefined | null,
/**
* The instance of the QR browser reader
*/
codeReader?: BrowserQRCodeReader
) => void;
export type UseQrReaderHookProps = {
/**
* Media constraints object, to specify which camera and capabilities to use
*/
constraints?: MediaTrackConstraints;
/**
* Callback for retrieving the result
*/
onResult?: OnResultFunction;
/**
* Property that represents the scan period
*/
scanDelay?: number;
/**
* Property that represents the ID of the video element
*/
videoId?: string;
};
export type UseQrReaderHook = (props: UseQrReaderHookProps) => void;