import { goto } from "$app/navigation"; type User = { token: string, id: string, user_type: number, username: string, email: string, }; export function createUserStore() { let user = $state(undefined); function getValue() { if (user == undefined) { let storage = localStorage.getItem('user'); if (storage) { try { user = JSON.parse(storage); } catch { user = undefined; } } } return user; } return { get user() { return getValue(); }, set user(value: User | undefined) { if (value) { localStorage.setItem('user', JSON.stringify(value)); } else { localStorage.removeItem('user'); } user = value; }, checkUser(pathOnFail: string, level?: number) { if (user && user.level > (level ?? 2) ) { goto(pathOnFail); return true; } return false; }, isLogin() { if (getValue()) return true; return false; } } } export const userStore = createUserStore();