diff --git a/package.json b/package.json index 4a3dc5bc..bc1cec85 100644 --- a/package.json +++ b/package.json @@ -62,12 +62,12 @@ "i18next": "^11.2.2", "i18next-node-fs-backend": "^1.0.0", "invariant": "^2.2.4", + "jsqr": "^1.1.1", "lodash": "^4.17.5", "lru-cache": "^4.1.3", "measure-scrollbar": "^1.1.0", "moment": "^2.22.2", "qrcode": "^1.2.0", - "qrcode-reader": "^1.0.4", "qs": "^6.5.1", "raven": "^2.5.0", "raven-js": "^3.24.2", diff --git a/src/components/QRCodeCameraPickerCanvas.js b/src/components/QRCodeCameraPickerCanvas.js index 271f2c4e..b2f6643e 100644 --- a/src/components/QRCodeCameraPickerCanvas.js +++ b/src/components/QRCodeCameraPickerCanvas.js @@ -1,7 +1,7 @@ // @flow import React, { Component } from 'react' -import QrCode from 'qrcode-reader' +import jsQR from 'jsqr' import logger from 'logger' export default class QRCodeCameraPickerCanvas extends Component< @@ -60,12 +60,6 @@ export default class QRCodeCameraPickerCanvas extends Component< if (!getUserMedia) { this.setState({ message: 'Incompatible browser' }) // eslint-disable-line } else { - const qr = new QrCode() - qr.callback = (err, value) => { - if (!err) { - this.props.onPick(value.result) - } - } getUserMedia({ video: { facingMode: 'environment' }, }) @@ -146,7 +140,12 @@ export default class QRCodeCameraPickerCanvas extends Component< if (t - lastCheck >= intervalCheck) { lastCheck = t - qr.decode(ctxMain.getImageData(0, 0, width, height)) + const imageData = ctxMain.getImageData(0, 0, width, height) + const code = jsQR(imageData.data, width, height) + + if (code && code.data) { + this.props.onPick(code.data) + } } } raf = requestAnimationFrame(loop) diff --git a/yarn.lock b/yarn.lock index 07a5729c..e98b2ff0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9122,6 +9122,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jsqr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.1.1.tgz#a0d7f95e6c3b0bec913dfef2ca64a877f28ed05f" + jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" @@ -11705,10 +11709,6 @@ q@^1.1.2, q@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qrcode-reader@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz#95d9bb9e8130800361a96cb5a43124ad1d9e06b8" - qrcode-terminal@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819"