Files
lingxiao865 c5af079d8c first commit
2026-02-10 08:05:03 +08:00

26 lines
801 B
JavaScript

import { QrCode, QrSegment } from '../../common/shared/qrcode/qrcodegen';
import { ERROR_LEVEL_MAP, getImageSettings, getMarginSize } from '../../common/shared/qrcode/utils';
const useQRCode = (opt) => {
const { value, level, minVersion, includeMargin, marginSize, imageSettings, size } = opt;
const qrcode = (() => {
const segments = QrSegment.makeSegments(value);
return QrCode.encodeSegments(segments, ERROR_LEVEL_MAP[level], minVersion);
})();
const cells = qrcode.getModules();
const margin = getMarginSize(includeMargin, marginSize);
const calculatedImageSettings = getImageSettings(cells, size, margin, imageSettings);
return {
cells,
margin,
numCells: cells.length + margin * 2,
calculatedImageSettings,
qrcode,
};
};
export default useQRCode;