// WealthIntelligence — Trustworthy People page + PersonDetailDrawer
const TrustworthyPage = ({state, t, openPersonDetail, openPersonEditor}) => {
return
{person.name}
{person.rel}
{person.invited ? t.trustworthy.invited : t.trustworthy.not_invited}
{/* Contact */}
{t.trustworthy.detail.contact}
{person.email}
{person.phone}
{/* Cassette assigned */}
{t.trustworthy.detail.cassette}
{cassette.length}
{cassette.length === 0 ? (
{t.trustworthy.detail.no_cassette}
) : (
{permanent.length > 0 && (
{t.vault.triggers.permanent}
{renderCassetteGroup(permanent)}
)}
{temporary.length > 0 && (
{t.vault.triggers.temporary}
{renderCassetteGroup(temporary)}
)}
)}
{/* Items covered */}
{t.trustworthy.detail.items_covered}
{totalEur > 0 &&
{fmtEur(totalEur)}}
{t.trustworthy.detail.items_covered_help}
{items.length === 0 ? (
{t.trustworthy.detail.no_items_covered}
) : (
{items.map((it, i) => (
{it.name}
{t.inventory.cat[it.category] || it.category}
{typeof it.valueEur === 'number' && (
{fmtEur(it.valueEur)}
)}
))}
)}
{!person.invited ? (
) :
}
>;
};
// ------- Person editor (drawer) -------
const PersonEditor = ({person, isNew, t, onClose, onSave, onDelete}) => {
const computeInitials = (name) => (name||'').split(/\s+/).filter(Boolean).map(w => w[0]).join('').slice(0,2).toUpperCase();
const [draft, setDraft] = useState(() => person || {
id:null, name:'', rel:'', phone:'', email:'',
invited:false, color: window.WI.PEOPLE_COLORS[0], initials:'',
});
const [confirmDel, setConfirmDel] = useState(false);
const set = (k, v) => setDraft(d => {
const next = {...d, [k]:v};
if (k === 'name') next.initials = computeInitials(v);
return next;
});
const valid = draft.name.trim().length > 0;
return <>
{/* Live preview monogram */}
{draft.name || 'Nome cognome'}
{draft.rel || 'relazione'}
set('name', e.target.value)}/>
set('rel', e.target.value)}/>
set('email', e.target.value)}/>
set('phone', e.target.value)}/>
{window.WI.PEOPLE_COLORS.map(co => (
{!isNew ? (
confirmDel ? (
Eliminare questa persona?
) : (
)
) :
}
>;
};
Object.assign(window, { TrustworthyPage, PersonDetailDrawer, PersonEditor });