UNPKG

@codesaursx/react-scanner

Version:

A React component to read QR and Barcodes in web-applications.

59 lines (53 loc) 1.98 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var React = require('react'); var React__default = _interopDefault(React); var Webcam = _interopDefault(require('react-webcam')); var browser = require('@zxing/browser'); var Scanner = function Scanner(_ref) { var onUpdate = _ref.onUpdate, onError = _ref.onError, _ref$width = _ref.width, width = _ref$width === void 0 ? '100%' : _ref$width, _ref$height = _ref.height, height = _ref$height === void 0 ? '100%' : _ref$height, _ref$facingMode = _ref.facingMode, facingMode = _ref$facingMode === void 0 ? 'environment' : _ref$facingMode, _ref$delay = _ref.delay, delay = _ref$delay === void 0 ? 500 : _ref$delay, videoConstraints = _ref.videoConstraints; var webcamRef = React.useRef(null); var handleCapture = React.useCallback(function () { var _webcamRef$current; var reader = new browser.BrowserMultiFormatReader(); // @ts-ignore var imageSrc = webcamRef == null ? void 0 : (_webcamRef$current = webcamRef.current) == null ? void 0 : _webcamRef$current.getScreenshot(); if (imageSrc) { reader.decodeFromImageUrl(imageSrc).then(function (res) { onUpdate(null, res); })["catch"](function (e) { onUpdate(e); }); } }, [onUpdate]); React.useEffect(function () { var interval = setInterval(handleCapture, delay); return function () { clearInterval(interval); }; }, []); return React__default.createElement(Webcam, { width: width, height: height, ref: webcamRef, screenshotFormat: "image/jpeg", videoConstraints: videoConstraints != null ? videoConstraints : { facingMode: facingMode }, audio: false, onUserMediaError: onError }); }; exports.Scanner = Scanner; //# sourceMappingURL=react-scanner.cjs.development.js.map