// destiny.jsx — DestinyDrawer slide-in panel // t and React hooks are available from components.jsx (loaded first) function DestinyDrawer({ item, itemType = 'service', people, onSave, onClose }) { const [selectedDestiny, setSelectedDestiny] = useState(item?.destiny || null); const [selectedPeople, setSelectedPeople] = useState(item?.assignees || []); const [note, setNote] = useState(item?.note || ''); // Reset when item changes useEffect(() => { setSelectedDestiny(item?.destiny || null); setSelectedPeople(item?.assignees || []); setNote(item?.note || ''); }, [item?.id]); if (!item) return null; const destinyOptions = [ { id: 'people', label: t.destiny.people, desc: t.destiny.people_desc, color: 'var(--destiny-people)', icon: 'people', }, { id: 'oblio', label: t.destiny.oblio, desc: t.destiny.oblio_desc, color: 'var(--destiny-oblio)', icon: 'oblio', }, { id: 'hidden', label: t.destiny.hidden, desc: t.destiny.hidden_desc, color: 'var(--destiny-hidden)', icon: 'eye_off', }, ]; function togglePerson(id) { setSelectedPeople(prev => prev.includes(id) ? prev.filter(x => x !== id) : [...prev, id] ); } function handleSave() { onSave({ ...item, destiny: selectedDestiny, assignees: selectedDestiny === 'people' ? selectedPeople : [], note, }); onClose(); } return ( <>