fix child pref updates
This commit is contained in:
@@ -7,7 +7,16 @@ export async function load(event) {
|
||||
const username = event.params.username;
|
||||
|
||||
if (!session) {
|
||||
return { verified: false, token: '', memberId: '', famId: '', memberName: '', memberColor: '', email: '' };
|
||||
return {
|
||||
verified: false,
|
||||
role: '',
|
||||
token: '',
|
||||
memberId: '',
|
||||
famId: '',
|
||||
memberName: '',
|
||||
memberColor: '',
|
||||
email: ''
|
||||
};
|
||||
}
|
||||
|
||||
const famId = session.famId;
|
||||
@@ -21,20 +30,41 @@ export async function load(event) {
|
||||
try {
|
||||
const me = await s.fam.getProfile(famId);
|
||||
return {
|
||||
verified: true, token: '', memberId: me.id, famId,
|
||||
memberName: me.name, memberColor: me.color, email: me.email || '',
|
||||
session: true,
|
||||
verified: true,
|
||||
role: 'parent',
|
||||
token: '',
|
||||
memberId: me.id,
|
||||
famId,
|
||||
memberName: me.name,
|
||||
memberColor: me.color,
|
||||
email: me.email || '',
|
||||
session: true
|
||||
};
|
||||
} catch {
|
||||
return { verified: false, token: '', memberId: '', famId: '', memberName: '', memberColor: '', email: '' };
|
||||
return {
|
||||
verified: false,
|
||||
role: '',
|
||||
token: '',
|
||||
memberId: '',
|
||||
famId: '',
|
||||
memberName: '',
|
||||
memberColor: '',
|
||||
email: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Child — profile lives on the users record, read from the session.
|
||||
return {
|
||||
verified: true, token: event.cookies.get('pb_token') || '', memberId: session.id, famId,
|
||||
memberName: session.name || '', memberColor: session.color || '', email: '',
|
||||
session: true,
|
||||
verified: true,
|
||||
role: 'child',
|
||||
token: event.cookies.get('pb_token') || '',
|
||||
memberId: session.id,
|
||||
famId,
|
||||
memberName: session.name || '',
|
||||
memberColor: session.color || '',
|
||||
email: '',
|
||||
session: true
|
||||
};
|
||||
}
|
||||
|
||||
@@ -74,5 +104,5 @@ export const actions = {
|
||||
} catch (e) {
|
||||
return { error: e instanceof Error ? e.message : 'Update failed' };
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
@@ -8,7 +8,16 @@
|
||||
let memberColor = $state(data.memberColor || '#6366f1');
|
||||
let memberEmail = $state(data.email || '');
|
||||
|
||||
const colors = ['#6366f1', '#ec4899', '#f59e0b', '#10b981', '#3b82f6', '#ef4444', '#8b5cf6', '#14b8a6'];
|
||||
const colors = [
|
||||
'#6366f1',
|
||||
'#ec4899',
|
||||
'#f59e0b',
|
||||
'#10b981',
|
||||
'#3b82f6',
|
||||
'#ef4444',
|
||||
'#8b5cf6',
|
||||
'#14b8a6'
|
||||
];
|
||||
</script>
|
||||
|
||||
<ViewHeader title="Preferences" subtitle={data.verified ? data.memberName : ''} hero />
|
||||
@@ -59,35 +68,29 @@
|
||||
{#each colors as c}
|
||||
<button
|
||||
type="button"
|
||||
style="width:2rem;height:2rem;border-radius:50%;border:{c === memberColor ? '3px solid #111827' : '2px solid transparent'};background:{c};cursor:pointer"
|
||||
onclick={() => memberColor = c}
|
||||
style="width:2rem;height:2rem;border-radius:50%;border:{c === memberColor
|
||||
? '3px solid #111827'
|
||||
: '2px solid transparent'};background:{c};cursor:pointer"
|
||||
onclick={() => (memberColor = c)}
|
||||
></button>
|
||||
{/each}
|
||||
</div>
|
||||
<input type="hidden" name="color" value={memberColor} />
|
||||
</div>
|
||||
|
||||
{#if data.role === 'parent'}
|
||||
<div style="margin-bottom:1rem">
|
||||
<label style="display:block;font-size:0.85rem;color:#374151;margin-bottom:0.25rem">
|
||||
Email
|
||||
</label>
|
||||
{#if data.session}
|
||||
<input
|
||||
type="email"
|
||||
name="email"
|
||||
bind:value={memberEmail}
|
||||
style="padding:0.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:0.9rem;width:100%;box-sizing:border-box"
|
||||
/>
|
||||
{:else}
|
||||
<input
|
||||
type="email"
|
||||
name="email"
|
||||
value={memberEmail}
|
||||
disabled
|
||||
style="padding:0.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:0.9rem;width:100%;box-sizing:border-box;background:#f3f4f6;color:#9ca3af"
|
||||
/>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if form?.error}
|
||||
<p style="color:#dc2626;font-size:0.85rem;margin-bottom:0.5rem">{form.error}</p>
|
||||
|
||||
Reference in New Issue
Block a user