// WealthIntelligence — Profile page (inactivity + temporary illness + mailboxes) const ProfilePage = ({state, t, updateState, setTemporaryIllness, openUserEditor}) => { const inactivity = state.inactivity; const ti = state.temporaryIllness || { active:false, since:null, note:'' }; const [tiNote, setTiNote] = useState(ti.note || ''); useEffect(()=>{ setTiNote(ti.note || ''); }, [ti.note]); const cassettePermanent = state.cassette.filter(c => c.trigger==='permanent'); const cassetteTemporary = state.cassette.filter(c => c.trigger==='temporary'); const fmtSince = (iso) => { if (!iso) return ''; try { return new Date(iso).toLocaleString('it-IT', { day:'numeric', month:'short', year:'numeric', hour:'2-digit', minute:'2-digit' }); } catch(e){ return iso; } }; return
{/* Inactivity — drives permanent triggers */}

{t.profile.section_inactivity}

{t.profile.inactivity_drives}

{t.profile.inactivity_desc}

{t.profile.months}
{inactivity.months}
{t.profile.pings}
{inactivity.pingCount}
{t.profile.trusted_contacts}
{(inactivity.trustedContacts||[]).map(pid => { const p = state.people.find(x=>x.id===pid); if (!p) return null; return {p.name.split(' ')[0]} ; })}
Cassette che si attiveranno: {cassettePermanent.length}
{/* Temporary illness — manual trigger */}

{t.profile.section_temporary}

{ti.active ? `${t.profile.temporary_active} ${fmtSince(ti.since)}` : t.profile.temporary_inactive}

{t.profile.temporary_desc}

{t.profile.temporary_note}