MCPcopy
hub / github.com/zpao/qrcode.react / useQRCode

Function useQRCode

src/index.tsx:270–332  ·  view source on GitHub ↗
({
  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;
})

Source from the content-addressed store, hash-verified

268}
269
270function 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,

Callers 1

index.tsxFile · 0.85

Calls 5

getMarginSizeFunction · 0.85
getImageSettingsFunction · 0.85
makeSegmentsMethod · 0.80
encodeSegmentsMethod · 0.80
getModulesMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…