/** A QR code for a URL, with the plain link beneath — mobile hand-off. */ import { useEffect, useRef, useState } from "react"; import QRCode from "qrcode"; export function QrLink({ url, size = 200 }: { url: string; size?: number }) { const canvasRef = useRef(null); const [error, setError] = useState(null); useEffect(() => { if (!canvasRef.current) return; QRCode.toCanvas(canvasRef.current, url, { width: size, margin: 1 }).catch((err: unknown) => { setError(err instanceof Error ? err.message : String(err)); }); }, [url, size]); return ( {url} {error ? QR render failed: {error} : null} ); }