import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { History } from 'lucide-react'; import { RideNameHistory } from '@/types/database'; import { format } from 'date-fns'; import { parseDateForDisplay } from '@/lib/dateUtils'; interface FormerName { name: string; from_year?: number; to_year?: number; } interface FormerNamesProps { formerNames?: FormerName[]; nameHistory?: RideNameHistory[]; // New relational data currentName: string; } export function FormerNames({ formerNames, nameHistory, currentName }: FormerNamesProps) { // Use new relational data if available, fallback to legacy JSON const names = nameHistory || formerNames; if (!names || names.length === 0) { return null; } // Normalize data structure const normalizedNames = names.map((item) => { if ('former_name' in item) { // New relational format (RideNameHistory) return { name: item.former_name, date_changed: item.date_changed, reason: item.reason, from_year: item.from_year, to_year: item.to_year, order: item.order_index, }; } else { // Legacy JSON format (FormerName) return { name: item.name, from_year: item.from_year, to_year: item.to_year, order: 0, }; } }).sort((a, b) => a.order - b.order); return ( Ride History
{currentName}
Current name
Current
{normalizedNames.map((former, index) => (
{former.name}
{(former.from_year || former.to_year) && (
{former.from_year && former.to_year ? `${former.from_year} - ${former.to_year}` : former.from_year ? `Since ${former.from_year}` : `Until ${former.to_year}` }
)} {former.date_changed && (
Changed: {format(parseDateForDisplay(former.date_changed), 'MMM d, yyyy')}
)} {former.reason && (
{former.reason}
)}
Former
))}
); }