0.2.3 • Published 5 years ago

use-scan-detection v0.2.3

Weekly downloads
27
License
MIT
Repository
github
Last release
5 years ago

useScanDetection

npm downloads

A react hook for detecting barcode scanners in the DOM.

Installation

npm i use-scan-detection

Usage

useScanDetection({
    onComplete: (code) => { console.log(code) }
});

Parameters

Parameters are supplied by a config object:

ParameterDescription
averageWaitTimeAverage time between characters in milliseconds. Used to determine if input is from keyboard or a scanner. Defaults to 50.
timeToEvaluateTime to evaluate the buffer after each character.
startCharacterOptional. Character that barcode scanner prefixes input with. Buffer only starts if this character is read first.
endCharacterOptional. Character that barcode scanner suffixes input with. Buffer is evaluated early if this character is read. Defaults to line return and escape.
onCompleteFunction that is called when a complete barcode is scanned. Function is called with a single string which is the complete code.
onErrorOptional. Function that is called when an incomplete barcode is scanned. Function is called with a single string which is the incomplete code.
minLengthMinimum number of characters for a barcode to successfully read. Should be greater than 0. Defaults to 1.
ignoreIfFocusOnOptional. DOM element that if focused prevents codes from being read.
stopPropagationWhether to call stopPropagation on each key event. Defaults to false.
preventDefaultWhether to call preventDefault on each key event. Defaults to false.
containerDOM element to listen for keydown events in. Defaults to document.

Return

This hook returns nothing.

Example

import React, { useState } from 'react';
import useScanDetection from 'use-scan-detection';

const Input = () => {
    const [value, setValue] = useState("");

    useScanDetection({
        onComplete: setValue,
        minLength: 13 // EAN13
    });

    return (
        <input 
            value={value} 
            type="text"
        />
    );
};

export default Input

License

MIT Licensed

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago