import { create } from "zustand"; import type { User } from "@/types/user"; /* localStorage에서 유저 정보 복원 */ function loadUser(): User | null { try { const raw = localStorage.getItem("user"); return raw ? JSON.parse(raw) : null; } catch { return null; } } const savedUser = loadUser(); const savedToken = localStorage.getItem("accessToken"); interface AuthState { user: User | null; isAuthenticated: boolean; setAuth: (user: User, accessToken: string, refreshToken: string) => void; logout: () => void; } export const useAuthStore = create((set) => ({ user: savedUser, isAuthenticated: !!(savedUser && savedToken), setAuth: (user, accessToken, refreshToken) => { localStorage.setItem("accessToken", accessToken); localStorage.setItem("refreshToken", refreshToken); localStorage.setItem("user", JSON.stringify(user)); set({ user, isAuthenticated: true }); }, logout: () => { localStorage.removeItem("accessToken"); localStorage.removeItem("refreshToken"); localStorage.removeItem("user"); set({ user: null, isAuthenticated: false }); }, }));