({
value,
level,
minVersion,
includeMargin,
marginSize,
imageSettings,
size,
boostLevel,
}: {
value: string | string[];
level: ErrorCorrectionLevel;
minVersion: number;
includeMargin: boolean;
marginSize?: number;
imageSettings?: ImageSettings;
size: number;
boostLevel?: boolean;
})
| 268 | } |
| 269 | |
| 270 | function useQRCode({ |
| 271 | value, |
| 272 | level, |
| 273 | minVersion, |
| 274 | includeMargin, |
| 275 | marginSize, |
| 276 | imageSettings, |
| 277 | size, |
| 278 | boostLevel, |
| 279 | }: { |
| 280 | value: string | string[]; |
| 281 | level: ErrorCorrectionLevel; |
| 282 | minVersion: number; |
| 283 | includeMargin: boolean; |
| 284 | marginSize?: number; |
| 285 | imageSettings?: ImageSettings; |
| 286 | size: number; |
| 287 | boostLevel?: boolean; |
| 288 | }) { |
| 289 | let qrcode = React.useMemo(() => { |
| 290 | const values = Array.isArray(value) ? value : [value]; |
| 291 | const segments = values.reduce<qrcodegen.QrSegment[]>((accum, v) => { |
| 292 | accum.push(...qrcodegen.QrSegment.makeSegments(v)); |
| 293 | return accum; |
| 294 | }, []); |
| 295 | return qrcodegen.QrCode.encodeSegments( |
| 296 | segments, |
| 297 | ERROR_LEVEL_MAP[level], |
| 298 | minVersion, |
| 299 | undefined, |
| 300 | undefined, |
| 301 | boostLevel |
| 302 | ); |
| 303 | }, [value, level, minVersion, boostLevel]); |
| 304 | |
| 305 | const {cells, margin, numCells, calculatedImageSettings} = |
| 306 | React.useMemo(() => { |
| 307 | let cells = qrcode.getModules(); |
| 308 | |
| 309 | const margin = getMarginSize(includeMargin, marginSize); |
| 310 | const numCells = cells.length + margin * 2; |
| 311 | const calculatedImageSettings = getImageSettings( |
| 312 | cells, |
| 313 | size, |
| 314 | margin, |
| 315 | imageSettings |
| 316 | ); |
| 317 | return { |
| 318 | cells, |
| 319 | margin, |
| 320 | numCells, |
| 321 | calculatedImageSettings, |
| 322 | }; |
| 323 | }, [qrcode, size, imageSettings, includeMargin, marginSize]); |
| 324 | |
| 325 | return { |
| 326 | qrcode, |
| 327 | margin, |
no test coverage detected
searching dependent graphs…