import { create } from 'zustand'; import { persist } from 'zustand/middleware'; import type { User } from '../types'; interface AuthState { user: User | null; accessToken: string | null; refreshToken: string | null; setAuth: (user: User, accessToken: string, refreshToken: string) => void; setAccessToken: (token: string) => void; logout: () => void; } export const useAuthStore = create()( persist( (set) => ({ user: null, accessToken: null, refreshToken: null, setAuth: (user, accessToken, refreshToken) => set({ user, accessToken, refreshToken }), setAccessToken: (accessToken) => set({ accessToken }), logout: () => set({ user: null, accessToken: null, refreshToken: null }), }), { name: 'notesfrais-auth', // Ne persiste pas le token en clair dans sessionStorage, utilise localStorage // (acceptable car il expire en 15 min et le refresh token sert au renouvellement) } ) );