45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.useQRCode = useQRCode;
|
|
var _qrcodegen = require("../libs/qrcodegen");
|
|
var _utils = require("../utils");
|
|
var _react = require("react");
|
|
function useQRCode(_ref) {
|
|
var value = _ref.value,
|
|
level = _ref.level,
|
|
minVersion = _ref.minVersion,
|
|
includeMargin = _ref.includeMargin,
|
|
marginSize = _ref.marginSize,
|
|
imageSettings = _ref.imageSettings,
|
|
size = _ref.size;
|
|
var qrcode = (0, _react.useMemo)(function () {
|
|
var segments = _qrcodegen.QrSegment.makeSegments(value);
|
|
return _qrcodegen.QrCode.encodeSegments(segments, _utils.ERROR_LEVEL_MAP[level], minVersion);
|
|
}, [value, level, minVersion]);
|
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
var cs = qrcode.getModules();
|
|
var mg = (0, _utils.getMarginSize)(includeMargin, marginSize);
|
|
var ncs = cs.length + mg * 2;
|
|
var cis = (0, _utils.getImageSettings)(cs, size, mg, imageSettings);
|
|
return {
|
|
cells: cs,
|
|
margin: mg,
|
|
numCells: ncs,
|
|
calculatedImageSettings: cis
|
|
};
|
|
}, [qrcode, size, imageSettings, includeMargin, marginSize]),
|
|
cells = _useMemo.cells,
|
|
margin = _useMemo.margin,
|
|
numCells = _useMemo.numCells,
|
|
calculatedImageSettings = _useMemo.calculatedImageSettings;
|
|
return {
|
|
qrcode: qrcode,
|
|
margin: margin,
|
|
cells: cells,
|
|
numCells: numCells,
|
|
calculatedImageSettings: calculatedImageSettings
|
|
};
|
|
} |