From aea74bda3bd2f87d9a1b292da41a36da3ef7cd42 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Tue, 23 Jun 2026 20:27:50 +0300 Subject: [PATCH] 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. --- apps/frontend/src/app/providers/SessionProvider.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/frontend/src/app/providers/SessionProvider.tsx b/apps/frontend/src/app/providers/SessionProvider.tsx index a4cbd2c..725c894 100644 --- a/apps/frontend/src/app/providers/SessionProvider.tsx +++ b/apps/frontend/src/app/providers/SessionProvider.tsx @@ -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(