12 lines
491 B
TypeScript
12 lines
491 B
TypeScript
import { writable, derived } from 'svelte/store';
|
|
import type { SessionUser } from '$lib/types/session';
|
|
|
|
/** The current authenticated user, or null if not logged in. */
|
|
export const session = writable<SessionUser | null>(null);
|
|
|
|
/** Convenience derived — true when logged in. */
|
|
export const loggedIn = derived(session, ($s) => $s !== null);
|
|
|
|
/** True when the user has admin or moderator role. */
|
|
export const isModOrAdmin = derived(session, ($s) => !!($s?.admin || $s?.is_moderator));
|