import { Additive } from '../types'; interface AdditivePickerProps { additives: Additive[]; selectedIds: string[]; onChange: (selectedIds: string[]) => void; className?: string; } // Deutsche Namen für häufige Zusatzstoffe (E-Nummern) const ADDITIVE_NAMES: Record = { '1': 'Farbstoff', '2': 'Konservierungsstoff', '3': 'Antioxidationsmittel', '4': 'Geschmacksverstärker', '5': 'Geschwefelt', '6': 'Geschwärzt', '7': 'Gewachst', '8': 'Phosphat', '9': 'Süßungsmittel', '10': 'Phenylalaninquelle', '11': 'Koffeinhaltig', '12': 'Chininhaltig', '13': 'Alkoholhaltig', '14': 'Nitritpökelsalz', '15': 'Milchsäure', '16': 'Citronensäure', '17': 'Ascorbinsäure', '18': 'Tocopherol', '19': 'Lecithin', '20': 'Johannisbrotkernmehl', '21': 'Guarkernmehl', '22': 'Xanthan', '23': 'Carrageen', '24': 'Agar' }; export function AdditivePicker({ additives, selectedIds, onChange, className = '' }: AdditivePickerProps) { const handleToggle = (additiveId: string) => { if (selectedIds.includes(additiveId)) { onChange(selectedIds.filter(id => id !== additiveId)); } else { onChange([...selectedIds, additiveId]); } }; // Sortierte Zusatzstoffe const sortedAdditives = [...additives].sort((a, b) => { // Numerisch sortieren falls möglich, sonst alphabetisch const aNum = parseInt(a.id); const bNum = parseInt(b.id); if (!isNaN(aNum) && !isNaN(bNum)) { return aNum - bNum; } return a.id.localeCompare(b.id); }); return (
Zusatzstoffe auswählen
{sortedAdditives.map(additive => { const isSelected = selectedIds.includes(additive.id); const displayName = ADDITIVE_NAMES[additive.id] || additive.name; return ( ); })}
{selectedIds.length > 0 && (

Ausgewählte Zusatzstoffe:{' '} {selectedIds.sort((a, b) => { const aNum = parseInt(a); const bNum = parseInt(b); if (!isNaN(aNum) && !isNaN(bNum)) { return aNum - bNum; } return a.localeCompare(b); }).join(', ')}

)}
); }