refactor(lst): added side bar plus dummy menus

This commit is contained in:
2025-02-20 07:22:18 -06:00
parent 5f8943492e
commit 54b1b6081a
43 changed files with 1795 additions and 188 deletions

View File

@@ -1,36 +1,39 @@
import {create} from "zustand";
// type User = {
// id: number;
// username: string;
// };
type User = {
id: number;
username: string;
role: string;
};
type SessionState = {
//user: User | null;
export type SessionState = {
user: User | null;
token: string | null;
setSession: (token: string) => void;
setSession: (user: SessionState["user"], token: string) => void;
clearSession: () => void;
};
export const useSessionStore = create<SessionState>((set) => {
// Initialize from localStorage
//const storedUser = localStorage.getItem("user");
const storedUser = localStorage.getItem("user");
const storedToken = localStorage.getItem("auth_token");
return {
//user: storedUser ? JSON.parse(storedUser) : null,
user: storedUser ? JSON.parse(storedUser) : null,
token: storedToken || null,
setSession: (token) => {
setSession: (user, token) => {
localStorage.setItem("auth_token", token);
//localStorage.setItem("user", JSON.stringify(user));
set({token});
set({user, token});
},
clearSession: () => {
localStorage.removeItem("auth_token");
//localStorage.removeItem("user");
set({token: null});
set({user: null, token: null});
},
};
});
export type SessionType = ReturnType<typeof useSessionStore>;