update login flow
This commit is contained in:
@@ -216,5 +216,6 @@ export interface Session {
|
|||||||
famId: string;
|
famId: string;
|
||||||
userId: string;
|
userId: string;
|
||||||
memberName?: string;
|
memberName?: string;
|
||||||
|
username?: string;
|
||||||
role?: string;
|
role?: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,13 +26,16 @@ function actorFrom(session: {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async function resolveChatIdentity(session: {
|
async function resolveChatIdentity(
|
||||||
|
session: {
|
||||||
famId: string;
|
famId: string;
|
||||||
id: string;
|
id: string;
|
||||||
role: string;
|
role: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
color?: string;
|
color?: string;
|
||||||
}, pbToken: string) {
|
},
|
||||||
|
pbToken: string
|
||||||
|
) {
|
||||||
try {
|
try {
|
||||||
const s = createServices(createPbClient(pbToken));
|
const s = createServices(createPbClient(pbToken));
|
||||||
const actor = actorFrom(session);
|
const actor = actorFrom(session);
|
||||||
@@ -51,7 +54,11 @@ export async function load(event) {
|
|||||||
let famId = '';
|
let famId = '';
|
||||||
let chat: { famId: string; actor: ChatActor } | null = null;
|
let chat: { famId: string; actor: ChatActor } | null = null;
|
||||||
let fam: any = null;
|
let fam: any = null;
|
||||||
let famAccess = { disabled: false, mode: 'none' as 'none' | 'code' | 'sub' | 'canceled', reason: '' };
|
let famAccess = {
|
||||||
|
disabled: false,
|
||||||
|
mode: 'none' as 'none' | 'code' | 'sub' | 'canceled',
|
||||||
|
reason: ''
|
||||||
|
};
|
||||||
|
|
||||||
if (session && pbToken) {
|
if (session && pbToken) {
|
||||||
famId = session.famId;
|
famId = session.famId;
|
||||||
@@ -87,6 +94,7 @@ export async function load(event) {
|
|||||||
userId: session.id,
|
userId: session.id,
|
||||||
memberName: session.name,
|
memberName: session.name,
|
||||||
memberColor: session.color || '',
|
memberColor: session.color || '',
|
||||||
|
username: session.username || '',
|
||||||
role: session.role
|
role: session.role
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
|
|||||||
@@ -114,12 +114,14 @@
|
|||||||
// session exists. $effect (not onMount) so it also fires when the session
|
// session exists. $effect (not onMount) so it also fires when the session
|
||||||
// appears after the layout was already mounted — e.g. a member redeeming
|
// appears after the layout was already mounted — e.g. a member redeeming
|
||||||
// their OTP on /{fam}/join/{username} then landing on /{fam}/{username}.
|
// their OTP on /{fam}/join/{username} then landing on /{fam}/{username}.
|
||||||
|
// The handle comes from the session (not page.params) so jump-back-in lands
|
||||||
|
// on the user's own dashboard even from the bare /{fam} page.
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
if (!page.data.session) return;
|
if (!page.data.session) return;
|
||||||
recordShortcut({
|
recordShortcut({
|
||||||
famSlug: (page.data.fam?.slug as string) || page.params.fam || '',
|
famSlug: (page.data.fam?.slug as string) || page.params.fam || '',
|
||||||
famName: (page.data.fam?.name as string) || page.params.fam || '',
|
famName: (page.data.fam?.name as string) || page.params.fam || '',
|
||||||
userName: page.data.role === 'parent' ? '' : page.params.username || ''
|
userName: page.data.session.username || page.params.username || ''
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user