import { useEffect, useState } from "react"; import Spinner from "@excalidraw/excalidraw/components/Spinner"; interface QRCodeProps { value: string; } export const QRCode = ({ value }: QRCodeProps) => { const [svgData, setSvgData] = useState(null); const [error, setError] = useState(false); useEffect(() => { let mounted = true; import("./qrcode.chunk") .then(({ generateQRCodeSVG }) => { if (mounted) { try { setSvgData(generateQRCodeSVG(value)); } catch { setError(true); } } }) .catch(() => { if (mounted) { setError(true); } }); return () => { mounted = false; }; }, [value]); if (error) { return null; } if (!svgData) { return (
); } return (
); };