fix: sync SessionProvider auth state to Zustand store for router guard

requireAuth() in routeTree.tsx reads isAuthenticated from useSessionStore
(Zustand), but SessionProvider only managed state via React context.
After login, the Zustand store stayed false, causing protected route guards
to redirect to /login even when authenticated.
This commit is contained in:
Sergey Krylov 2026-06-23 20:27:50 +03:00
parent 9932278b64
commit aea74bda3b

View File

@ -1,6 +1,6 @@
import { type ReactNode, useCallback, useEffect, useState } from 'react'
import * as sessionApi from '@/entities/session'
import { SessionContext, type SessionContextValue } from '@/entities/session'
import { SessionContext, type SessionContextValue, useSessionStore } from '@/entities/session'
import {
getAccessToken,
handleUnauthorized,
@ -18,11 +18,13 @@ export function SessionProvider({ children }: { children: ReactNode }) {
const updateSession = useCallback((authData: { user: UserResponse; accessToken: string }) => {
setUser(authData.user)
setAccessTokenState(authData.accessToken)
useSessionStore.getState().setSession(authData)
}, [])
const clearSession = useCallback(() => {
setUser(null)
setAccessTokenState(null)
useSessionStore.getState().clearSession()
}, [])
const login = useCallback(