'use client' import { useActionState } from 'react' import { useFormStatus } from 'react-dom' import { AlertCircle, CheckCircle2, Loader2, Save } from 'lucide-react' import { Alert, AlertDescription } from '@/components/ui/alert' import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/checkbox' import { Input } from '@/components/ui/input' import { Select } from '@/components/ui/select' import { Textarea } from '@/components/ui/textarea' import { Feld, Feldgruppe } from '@/components/feld' import { ART_BESCHRIFTUNG, RICHTUNG_BESCHRIFTUNG } from '@/lib/dokumente/erkennung' import { DOKUMENT_ARTEN, DOKUMENT_RICHTUNGEN, POSTEINGANG_BESCHRIFTUNG, POSTEINGANG_STUFEN, } from '@/lib/validierung/dokumente' import { dokumentSpeichern, type Aktionszustand } from '@/server/actions/dokumente' export type MetadatenWerte = { id: string titel: string art: string richtung: string schreibenVom: string eingangAm: string versandAm: string absender: string empfaenger: string aktenzeichen: string ablageortPapier: string wiedervorlageAm: string ablaufAm: string posteingangStatus: string notizen: string tagIds: string[] } /** * Die Metadaten eines Dokuments. * * Das Feld, das hier am leichtesten uebersehen wird und trotzdem das * wichtigste ist: **der Ablageort des Originals**. Diese Anwendung ersetzt * den Leitz-Ordner nicht - sie sagt, in welchem er liegt. Wenn das Gericht * das Original sehen will, muss man es finden. */ export function MetadatenFormular({ werte, tags, schreibrecht, }: { werte: MetadatenWerte tags: { id: string; name: string }[] schreibrecht: boolean }) { const [zustand, aktion] = useActionState(dokumentSpeichern, {}) return (
{zustand.fehler && ( )} {zustand.hinweis && ( )}
{tags.length > 0 && (
Vorhandene Schlagworte
{tags.map((tag) => ( ))}
)}