NeonClary's picture
Deploy tutorial feature and recent fixes
d8808e7 verified
Raw
History Blame Contribute Delete
1.45 kB
import { apiFetch } from '../api'
const PERSONA_KEY = 'persona_draft_v1'
const ADVISOR_KEY = 'advisor_draft_v1'
export function loadPersonaDraft(): Record<string, unknown> {
try {
const s = localStorage.getItem(PERSONA_KEY)
return s ? JSON.parse(s) : {}
} catch {
return {}
}
}
export function savePersonaDraft(data: Record<string, unknown>) {
localStorage.setItem(PERSONA_KEY, JSON.stringify(data))
}
export function loadAdvisorDraft(): Record<string, unknown> {
try {
const s = localStorage.getItem(ADVISOR_KEY)
return s ? JSON.parse(s) : {}
} catch {
return {}
}
}
export function saveAdvisorDraft(data: Record<string, unknown>) {
localStorage.setItem(ADVISOR_KEY, JSON.stringify(data))
}
export async function syncPersonaToServerIfAuthed() {
const r = await apiFetch('/api/users/me/profile')
if (!r.ok) return
const cur = await r.json()
await apiFetch('/api/users/me/profile', {
method: 'PUT',
body: JSON.stringify({
persona_draft: { ...cur.persona_draft, ...loadPersonaDraft() },
}),
})
}
export async function syncAdvisorToServerIfAuthed() {
const r = await apiFetch('/api/users/me/profile')
if (!r.ok) return
const cur = await r.json()
await apiFetch('/api/users/me/profile', {
method: 'PUT',
body: JSON.stringify({
advisor_draft: { ...cur.advisor_draft, ...loadAdvisorDraft() },
}),
})
}