import { useState } from 'react' import { Download, Loader2 } from 'lucide-react' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { exportToPng, EXPORT_QUALITY_OPTIONS, type ExportQuality } from '@/utils/export' interface ExportModalProps { open: boolean onClose: () => void getElement: () => HTMLElement | null } export function ExportModal({ open, onClose, getElement }: ExportModalProps) { const [quality, setQuality] = useState('high') const [exporting, setExporting] = useState(false) const handleExport = async () => { const el = getElement() if (!el) return setExporting(true) try { await exportToPng(el, quality) onClose() } finally { setExporting(false) } } return ( !v && onClose()}> Export as PNG
{EXPORT_QUALITY_OPTIONS.map((opt) => ( ))}
) }