import { Button } from "@/components/ui/button"; import { Card, CardDescription, CardHeader, CardTitle, CardFooter, } from "@/components/ui/card"; import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { useEffect, useRef, useState } from "react"; import QRCode from "qrcode"; interface VCardExportProps { sectionChange: (section: string) => void; vcardText: any; } export default function VCardExport({ sectionChange, vcardText, }: VCardExportProps) { const canvasRef = useRef(null); const [resolution, setResolution] = useState("512"); useEffect(() => { if (canvasRef.current) { QRCode.toCanvas(canvasRef.current, vcardText, { width: 256, margin: 2, }).catch(console.error); } }, [vcardText]); const downloadQRCode = () => { const offscreenCanvas = document.createElement("canvas"); QRCode.toCanvas(offscreenCanvas, vcardText, { width: Number(resolution), margin: 2, }) .then(() => { const pngUrl = offscreenCanvas.toDataURL("image/png"); const link = document.createElement("a"); link.href = pngUrl; link.download = "vcard_qrcode.png"; link.click(); }) .catch(console.error); }; return ( VCard Qrcode Sie können nun die Größe (Standard = 512x512px) auswählen und den QRCode downloaden. 1024x1024 512x512 256x256 {" "} ); }