import { Button, Modal, ModalDialog } from "@mui/joy"; import { QRCodeCanvas } from "qrcode.react"; import { useRef } from "react"; import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { absolutifyLink } from "@/helpers/utils"; import { Shortcut } from "@/types/proto/api/v1/shortcut_service"; import Icon from "./Icon"; interface Props { shortcut: Shortcut; onClose: () => void; } const GenerateQRCodeDialog: React.FC = (props: Props) => { const { shortcut, onClose } = props; const { t } = useTranslation(); const containerRef = useRef(null); const shortcutLink = absolutifyLink(`/s/${shortcut.name}`); const handleCloseBtnClick = () => { onClose(); }; const handleDownloadQRCodeClick = () => { const canvas = containerRef.current?.querySelector("canvas"); if (!canvas) { toast.error("Failed to get QR code canvas"); return; } const link = document.createElement("a"); link.download = `${shortcut.title || shortcut.name}-qrcode.png`; link.href = canvas.toDataURL(); link.click(); handleCloseBtnClick(); }; return (
QR Code
); }; export default GenerateQRCodeDialog;