1234567891011121314151617181920212223242526272829 |
- import { QrCode, QrSegment } from "../libs/qrcodegen";
- import { ERROR_LEVEL_MAP, getImageSettings, getMarginSize } from "../utils";
- import React from 'react';
- export var useQRCode = function useQRCode(opt) {
- var value = opt.value,
- level = opt.level,
- minVersion = opt.minVersion,
- includeMargin = opt.includeMargin,
- marginSize = opt.marginSize,
- imageSettings = opt.imageSettings,
- size = opt.size;
- var memoizedQrcode = React.useMemo(function () {
- var segments = QrSegment.makeSegments(value);
- return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);
- }, [value, level, minVersion]);
- return React.useMemo(function () {
- var cs = memoizedQrcode.getModules();
- var mg = getMarginSize(includeMargin, marginSize);
- var ncs = cs.length + mg * 2;
- var cis = getImageSettings(cs, size, mg, imageSettings);
- return {
- cells: cs,
- margin: mg,
- numCells: ncs,
- calculatedImageSettings: cis,
- qrcode: memoizedQrcode
- };
- }, [memoizedQrcode, size, imageSettings, includeMargin, marginSize]);
- };
|