This commit is contained in:
Maieul BOYER 2025-12-01 19:26:22 +01:00
parent e5b71a5cc1
commit c898fe8d32
No known key found for this signature in database
30 changed files with 1148 additions and 95 deletions

View file

@ -2,49 +2,54 @@ import { showError } from "@app/toast";
import client from '@app/api';
export type User = {
id: string;
guest: boolean;
name: string;
id: string;
guest: boolean;
name: string;
selfInfo?: {
loginName?: string;
provider_id?: string;
provider_user?: string;
}
};
let currentUser: User | null = null;
export function getUser(): Readonly<User> | null {
return currentUser;
return currentUser;
}
export function isLogged(): boolean {
return currentUser !== null;
return currentUser !== null;
}
export function setUser(newUser: User | null) {
currentUser = newUser;
currentUser = newUser;
}
export async function updateUser(): Promise<Readonly<User> | null> {
try {
let res = await client.getUser({ user: 'me' });
try {
let res = await client.getUser({ user: 'me' });
if (res.kind === "success") {
setUser(res.payload);
return res.payload;
} else if (res.kind === "failure") {
// well no user :D
setUser(null);
return null;
} else if (res.kind === "notLoggedIn") {
setUser(null);
return null;
} else {
setUser(null);
showError(`unknown response: ${JSON.stringify(res)}`);
return null;
}
} catch (e) {
setUser(null);
showError(`failed to get user: ${e}`);
return null;
}
if (res.kind === "success") {
setUser(res.payload);
return res.payload;
} else if (res.kind === "failure") {
// well no user :D
setUser(null);
return null;
} else if (res.kind === "notLoggedIn") {
setUser(null);
return null;
} else {
setUser(null);
showError(`unknown response: ${JSON.stringify(res)}`);
return null;
}
} catch (e) {
setUser(null);
showError(`failed to get user: ${e}`);
return null;
}
}
Object.assign(window as any, { getUser, setUser, updateUser, isLogged });