"use client"; /* eslint-disable @next/next/no-img-element */ import { useEffect, useState } from "react"; import QRCode from "qrcode"; import { Modal } from "@/components/ui/modal"; type QrModalProps = { title: string; payload: string; }; export function QrModal({ title, payload }: QrModalProps) { const [open, setOpen] = useState(false); const [qrDataUrl, setQrDataUrl] = useState(null); const [error, setError] = useState(null); useEffect(() => { if (!open) { return; } QRCode.toDataURL(payload, { margin: 1, width: 280 }) .then((dataUrl) => { setQrDataUrl(dataUrl); setError(null); }) .catch(() => { setQrDataUrl(null); setError("Could not generate QR code"); }); }, [open, payload]); return ( <> setOpen(false)} title={title}>
{qrDataUrl ? ( QR code ) : (
{error ?? "Generating QR..."}
)}

{payload}

); }