import { FC, useEffect, useState } from "react"; // @ts-ignore - react-qr-code doesn't have React 19 compatible types yet import QRCodeInternal from "react-qr-code"; import { Box } from "@mui/material"; import { colors } from "../styles/theme"; type QRCodeProps = { name: string; label: string; token: string; verified: boolean; helperText?: string; getValue?: (id: string) => Promise>; refreshInterval?: number; }; export const QRCode: FC = ({ name, label, token, verified, helperText, getValue, refreshInterval, }) => { const [value, setValue] = useState(""); const [kind, setKind] = useState("data"); const { white } = colors; useEffect(() => { if (!verified && getValue && refreshInterval) { const interval = setInterval(async () => { const { qr, kind } = await getValue(token); setValue(qr); setKind(kind); }, refreshInterval * 1000); return () => clearInterval(interval); } }, [getValue, refreshInterval]); return !verified ? ( {kind === "data" ? ( ) : ( {name} )} {helperText} ) : null; };