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:
parent
9932278b64
commit
aea74bda3b
@ -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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user