import { Plus, Trash2, Calendar } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Card } from "@/components/ui/card"; import { DatePicker } from "@/components/ui/date-picker"; interface FormerName { former_name: string; date_changed?: Date | null; reason?: string; from_year?: number; to_year?: number; order_index: number; } interface FormerNamesEditorProps { names: FormerName[]; onChange: (names: FormerName[]) => void; currentName: string; } export function FormerNamesEditor({ names, onChange, currentName }: FormerNamesEditorProps) { const addName = () => { onChange([ ...names, { former_name: '', date_changed: null, reason: '', order_index: names.length } ]); }; const removeName = (index: number) => { const newNames = names.filter((_, i) => i !== index); onChange(newNames.map((name, i) => ({ ...name, order_index: i }))); }; const updateName = (index: number, field: keyof FormerName, value: string | number | Date | null | undefined) => { const newNames = [...names]; newNames[index] = { ...newNames[index], [field]: value }; onChange(newNames); }; // Sort names by date_changed (most recent first) for display const sortedNames = [...names].sort((a, b) => { if (!a.date_changed && !b.date_changed) return 0; if (!a.date_changed) return 1; if (!b.date_changed) return -1; return new Date(b.date_changed).getTime() - new Date(a.date_changed).getTime(); }); return (
Current name: {currentName}