1.1.5 • Published 10 months ago

@leelexuan/react-qr-scanner v1.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Custom QR Scanner

This library extends the original QR scanning functionality from @yudiel/react-qr-scanner by enhancing user interactions and improving feedback through visual and click-based capabilities.

Features

  • Scan QR and barcode formats using a smartphone camera or webcam.
  • Visual bounding box states based on an external API response:
    • Red: Code not found.
    • Green: Code found.
    • Yellow: Loading state.
  • Mouse-click interaction to detect bounding box clicks.
  • Callback functions for:
    • onBoundingBoxClick: Detects clicks within the bounding box.
    • onNewBarCodeDetected: Triggers when a new barcode is scanned.
  • Removed audio beep
  • New overlay which shows bounding box with code
  • Removed tracker and device options

Demo

To see the original library in action, check out Yudiel's Demo.

Install

npm install '@leelexuan/react-qr-scanner'

Run

npm run storybook

Supported Formats

1D Barcodes2D Barcodes
CodabarAztec
Code 39Data Matrix
Code 93Matrix Codes
Code 128Maxi Code
DatabarMicro QR Code
Databar ExpandedPDF 417
Dx Film EdgeQR Code
EAN 8rMQR Code
EAN 13
ITF
Linear Codes
UPC A
UPC E

Scanner Props

PropTypeRequiredDescription
onBoundingBoxClick(rawValue: string) => voidYesCallback function that is called when a bounding box is clicked.
onNewBarcodeDetected(rawValue: string) => voidYesCallback function that is called when a new barcode/qr code is detected.
onError(error: unknown) => voidNoCallback function that is called when an error occurs while mounting the camera.
constraintsMediaTrackConstraintsNoOptional media track constraints to apply to the video stream.
formatsBarcodeFormat[]NoList of barcode formats to detect.
pausedbooleanNoIf true, scanning is paused.
childrenReactNodeNoOptional children to render inside the scanner component.
componentsIScannerComponentsNoCustom components to use within the scanner.
stylesIScannerStylesNoCustom styles to apply to the scanner and its elements.
classNamesIScannerClassNamesNoCustom classNames to apply to the scanner and its elements.
allowMultiplebooleanNoIf true, ignore same barcode being scanned.
scanDelaynumberNoDelay in milliseconds between scans.