@codesaursx/react-scanner
Version:
A React component to read QR and Barcodes in web-applications.
59 lines (53 loc) • 1.98 kB
JavaScript
'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