'use client'; import { createCollector, deleteCollector, updateCollector, } from '@/app/(app)/verwaltung/sammler/actions'; import { COLLECTOR_COLOR_LABELS } from '@/lib/collector-colors'; import { toDateInputValue } from '@/lib/format'; import { CrudSection, type CrudItem } from './crud-section'; import { Field } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; import { NativeSelect } from '@/components/ui/native-select'; import { Textarea } from '@/components/ui/textarea'; export type CollectorRowItem = CrudItem & { color: string; birthday: Date | null; notes: string | null; itemCount: number; }; export function CollectorList({ collectors }: { collectors: CollectorRowItem[] }) { return ( items={collectors} emptyText="Noch kein Sammler angelegt." createLabel="Sammler anlegen" dialogTitle={(item) => (item ? 'Sammler bearbeiten' : 'Neuer Sammler')} dialogDescription="Der Katalog bleibt gemeinsam – Sammlung und Wunschlisten gehören je einem Sammler." onCreate={createCollector} onUpdate={updateCollector} onDelete={deleteCollector} deleteWarning={(item) => item.itemCount > 0 ? `„${item.title}“ hat ${item.itemCount} Sets in der Sammlung. Ordne sie erst jemand anderem zu – erst dann lässt sich der Sammler löschen.` : `„${item.title}“ wird gelöscht. Der Katalog bleibt unverändert.` } renderFields={(item) => ( <> {Object.entries(COLLECTOR_COLOR_LABELS).map(([value, label]) => ( ))}