npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@thewirv/react-barcode-scanner

v3.3.5

Published

A React component for scanning QR codes and other barcodes via webcam

Downloads

448

Readme

React Barcode Scanner npm version License: MIT Known Vulnerabilities

:rocket: React Barcode Scanner component.

Table of contents

Use Case

You need a component for scanning QR codes or other barcodes from a web browser based app.

Compatibility

This component has been tested in the following browsers:

  • Chrome Mac OS & Android
  • Firefox Mac OS & Android
  • Safari Mac OS & iOS

Since this library does internal use of hooks you need React >= 16.8.0.

This library utilizes the ZXing library and therefore supports all their supported formats of 1D and 2D barcodes.

Installation

You can install this library via bun, yarn, or npm.

bun

bun add @thewirv/react-barcode-scanner

yarn

yarn add @thewirv/react-barcode-scanner

npm

npm i @thewirv/react-barcode-scanner

Example Usage

After reading and performing the previous steps, you should be able to import the library and use it like in this example:

import {useState} from 'react';
import {BarcodeScanner} from '@thewirv/react-barcode-scanner';

const Test = (props: Props) => {
  const [data, setData] = useState('No result');

  return (
    <>
      <BarcodeScanner
        onSuccess={(text) => setData(text)}
        onError={(error) => {
          if (error) {
            console.error(error.message);
          }
        }}
        onLoad={() => console.log('Video feed has loaded!')}
        containerStyle={{width: '100%'}}
      />
      <p>{data}</p>
    </>
  );
};

Component API

The BarcodeScanner component has the following props:

| Properties | Types | Default Value | Required | Description | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | -------- | -------------------------------------------------------- | | doScan | boolean | true | ☐ | Controls whether the scanner should be scanning or not | | constraints | MediaTrackConstraints | { facingMode: 'user' } | ☐ | Specify which camera should be used (if available) | | onSuccess | (text: string) => void | none | 🗹 | Callback for retrieving the result | | onError | (e?: Error) => void | none | 🗹 | Callback for retrieving the error if one occurs | | onLoad | () => void | none | ☐ | Callback for when the camera feed has been loaded | | Viewfinder | React.ReactElement | none | ☐ | Viewfinder component to render on top of the video element | | containerStyle | React.CSSProperties | none | ☐ | Style object for the whole component's wrapping section element | | videoContainerStyle | React.CSSProperties | none | ☐ | Style object for the video's container div element | | videoStyle | React.CSSProperties | none | ☐ | Style object for the video element | | videoProps | Either object of type VideoHTMLAttributes<HTMLVideoElement> or function that returns such an object and gets passed the default values set by this package | Check defaultVideoProps inside src/BarcodeScanner/index.tsx | ☐ | Passed to the underlying video element |

Maintainers

Browser Support

If you need to support older browsers, checkout this guide in how to make it compatible with legacy ones

Issues

Please, open an issue following one of the issues templates. We will do our best to fix them.

License

Distributed under the MIT license. See LICENSE for more information.