/* ============================================================
screen_profile.jsx — Profile + intent status switcher
============================================================ */
function StatusSwitch({ status, setStatus, t, lang }) {
const opts = [
{ key: 'active', label: t.st_active, short: { ru: 'Ищу', uz: 'Qidiraman' }, desc: t.st_active_d, color: 'var(--good)', icon: 'eye' },
{ key: 'open', label: t.st_open, short: { ru: 'Открыт', uz: 'Ochiq' }, desc: t.st_open_d, color: 'var(--amber)', icon: 'spark' },
{ key: 'closed', label: t.st_closed, short: { ru: 'Не ищу', uz: 'Yo‘q' }, desc: t.st_closed_d, color: 'var(--text-3)', icon: 'lock' },
];
const cur = opts.find(o => o.key === status) || opts[0];
return (
{t.statusTitle}
{cur.label}
{t.statusSub}
{/* segmented */}
{opts.map(o => {
const on = o.key === status;
return (
);
})}
{cur.desc}
);
}
function ProfileScreen({ lang, theme, setLang, setTheme, t, status, setStatus, go }) {
const val = useCountUp(PERSONA.value, 1100, true);
return (
} t={t} />
{/* identity */}
{tr(PERSONA.name, lang)}
{tr(PERSONA.goal, lang)}
{tr(PERSONA.location, lang)} · {tr(PERSONA.edu, lang)}
{/* value */}
{t.estValue}
{fmtSum(val)}
{t.perMonth}
{fmtSum(PERSONA.valueLow)}{fmtSum(PERSONA.valueHigh)}
{/* skills */}
{t.canonicalSkills}
{lang === 'ru' ? 'каноничные' : 'kanonik'}
{SKILLS.map((s, i) => )}
{/* languages */}
{t.languages}
{LANGS.map((l, i) => (
{tr(l, lang)}
{tr(l.lvl, lang)}
))}
{/* experience */}
{t.expTitle}
{EXPERIENCE.map((e, i) => (
{i < EXPERIENCE.length - 1 && }
{tr(e.role, lang)}
{tr(e.org, lang)}
{tr(e.period, lang)} · {tr(e.dur, lang)}
))}
{/* completeness */}
{/* privacy */}
{t.privacy}
{t.privacyNote}
);
}
Object.assign(window, { ProfileScreen, StatusSwitch });