feat(frontend): Export-Buttons fuer Voelker, Honigchargen (Modul 21)

CSV-Export in den Listen-Views (Voelker, Honigchargen) und
PDF-Rueckverfolgbarkeitsbericht auf der Honigcharge-Detailseite.
apiFetchBlob() im API-Client ergaenzt fuer authentifizierte
Blob-Downloads (JWT im Authorization-Header statt Cookie).
This commit is contained in:
Nick Szaunig committed 2026-08-22 10:10:23 +02:00
1 parent c281d04b16
commit ed108045af
6 files changed
+114 -9

No files matched your search

@@ -2,9 +2,10 @@
import { useState } from "react";
import Link from "next/link";
import { useQuery } from "@tanstack/react-query";
import { useMutation, useQuery } from "@tanstack/react-query";
import { fetchColonies } from "@/lib/colonies/api";
import { ColonyStatus } from "@/lib/colonies/types";
import { exportColoniesCsv } from "@/lib/export/api";
import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import {
@@ -42,13 +43,24 @@ export default function ColoniesPage() {
queryFn: () => fetchColonies({ status: status || undefined }),
});
const exportMutation = useMutation({ mutationFn: exportColoniesCsv });
return (
<main className="flex flex-col gap-4 p-4 sm:p-6">
<div className="flex items-center justify-between">
<h1 className="text-xl font-semibold">Völker</h1>
<Button nativeButton={false} render={<Link href="/colonies/new" />}>
+ Neues Volk
</Button>
<div className="flex gap-2">
<Button
variant="outline"
disabled={exportMutation.isPending}
onClick={() => exportMutation.mutate()}
>
CSV exportieren
</Button>
<Button nativeButton={false} render={<Link href="/colonies/new" />}>
+ Neues Volk
</Button>
</div>
</div>
<Select