// Update profile page (re-uses onboarding inputs in a compact card layout) // Wired to PrimaAPI.updateMe() const UpdateProfile = ({ user, onSaved }) => { const [form, setForm] = React.useState({ email: user?.primus_email || user?.email || "", fullName: user?.full_name || user?.name || "", empCode: user?.emp_code || user?.empCode || "", designation: user?.designation || "", yoe: user?.yoe ?? "", primary: user?.primary_domain || user?.primary || "", secondary: user?.secondary_domain || user?.secondary || "", skills: [...(user?.skills || [])], tools: [...(user?.tools || [])], methodologies: [...(user?.methodologies || [])], industries: [...(user?.industries || [])], regions: [...(user?.regions || [])], languages: [...(user?.languages || [])] }); const [dirty, setDirty] = React.useState(false); const [saving, setSaving] = React.useState(false); const [error, setError] = React.useState(null); const set = (k, v) => { setForm(f => ({ ...f, [k]: v })); setDirty(true); }; const handleSave = async () => { setSaving(true); setError(null); try { const payload = { full_name: form.fullName, yoe: parseInt(form.yoe, 10) || 0, primary_domain: form.primary, secondary_domain: form.secondary, skills: form.skills, tools: form.tools, methodologies: form.methodologies, industries: form.industries, regions: form.regions, languages: form.languages, }; const updated = await PrimaAPI.updateMe(payload); setDirty(false); onSaved(updated); } catch (e) { setError(e.message || "Failed to save profile."); } finally { setSaving(false); } }; return (
Your expertise drives staffing recommendations and downstream retrieval. Refine as you grow.