feat(frontend): finished login form with validation

This commit is contained in:
2025-02-21 09:16:07 -06:00
parent d939332499
commit 9719451580
25 changed files with 551 additions and 230 deletions

View File

@@ -9,28 +9,31 @@ type User = {
export type SessionState = {
user: User | null;
token: string | null;
setSession: (user: SessionState["user"], token: string) => void;
setSession: (user: User | null, token: string | null) => void;
clearSession: () => void;
};
export const useSessionStore = create<SessionState>((set) => {
// Initialize from localStorage
const storedUser = localStorage.getItem("user");
// Initialize token from localStorage, but user remains in memory only
const storedToken = localStorage.getItem("auth_token");
return {
user: storedUser ? JSON.parse(storedUser) : null,
user: null, // User is NOT stored in localStorage
token: storedToken || null,
setSession: (user, token) => {
localStorage.setItem("auth_token", token);
//localStorage.setItem("user", JSON.stringify(user));
if (token) {
localStorage.setItem("auth_token", token);
} else {
localStorage.removeItem("auth_token");
}
console.log("Setting session:", {user, token});
set({user, token});
},
clearSession: () => {
localStorage.removeItem("auth_token");
//localStorage.removeItem("user");
set({user: null, token: null});
},
};