"use client"; import { useQuery } from "@tanstack/react-query"; import { AlertTriangle, CheckCircle2, ClipboardList, Clock, FilePenLine } from "lucide-react"; import Link from "next/link"; import { useAuth } from "@/components/auth"; import { apiGet } from "@/lib/api"; type DashboardData = { validation_drafts: number; validation_ready: number; validation_in_review: number; validation_approved: number; validation_overdue: number; }; const cards = [ { label: "Entwuerfe", key: "validation_drafts", href: "/validations?status=ENTWURF", icon: FilePenLine }, { label: "Bereit zur Pruefung", key: "validation_ready", href: "/validations?status=BEREIT_ZUR_PRUEFUNG", icon: ClipboardList }, { label: "In Pruefung", key: "validation_in_review", href: "/validations?status=IN_PRUEFUNG", icon: Clock }, { label: "Freigegeben", key: "validation_approved", href: "/validations?status=FREIGEGEBEN", icon: CheckCircle2 }, { label: "Ueberfaellige Revalidierungen", key: "validation_overdue", href: "/validations?overdue_only=true", icon: AlertTriangle } ] as const; export default function DashboardPage() { const { token } = useAuth(); const query = useQuery({ queryKey: ["dashboard", token], queryFn: () => apiGet("/dashboard", token ?? ""), enabled: Boolean(token) }); return (

Dashboard

Validierungsworkflow und faellige Revalidierungen.

{cards.map((item) => { const Icon = item.icon; return (

{item.label}

{query.data?.[item.key] ?? 0}

); })}

Zuletzt bearbeitete Validierungen

Die Validierungsverwaltung bietet Suche, Filter, Sortierung, Vorschau, Export und Workflow-Aktionen.

); }