import { Link } from 'react-router-dom' import dayjs from 'dayjs' import { FileDown } from 'lucide-react' import { useAuth } from '../../context/AuthContext' import { useProfile } from '../../context/ProfileContext' import { exportDashboardToPdf } from '../../utils/dashboardPdfExport' /** * @param {{ reportExportConfig: { document_title: string, subtitle: string, capture_scale: number } }} props */ export default function ReportExportWidget({ reportExportConfig }) { const { canExport } = useAuth() const { activeProfile } = useProfile() const [busy, setBusy] = useState(false) const [err, setErr] = useState(null) const profileName = activeProfile?.name?.trim() || 'Profil' const title = reportExportConfig.document_title || `${profileName} – Übersicht` const subtitle = reportExportConfig.subtitle || `Erstellt am ${dayjs().format('DD.MM.YYYY HH:mm')} · Mitai Jinkendo` const runExport = async () => { setErr(null) setBusy(true) try { const slug = (reportExportConfig.document_title || profileName).replace(/\s+/g, '-').slice(0, 80) await exportDashboardToPdf({ scale: reportExportConfig.capture_scale, filenameBase: `bericht-${slug}-${dayjs().format('YYYY-MM-DD')}`, }) } catch (e) { setErr(e?.message || 'PDF-Export fehlgeschlagen.') } finally { setBusy(false) } } return (
Übersicht als Bild-PDF

{title}

{subtitle}

Layout-Schnappschuss: Die sichtbare Übersicht wird im Browser gerastert (html2canvas). Für einen datenbasierten Bericht unabhängig vom Dashboard öffne{' '} Einstellungen → PDF-Berichte .

{!canExport ? (

PDF-Export ist für dieses Profil nicht freigeschaltet.

) : ( <> {err && (

{err}

)} )}
) }