fix: org switch now updates auth context immediately — no stale org in header

This commit is contained in:
Usman Baig
2026-03-26 23:59:30 +01:00
parent 342ee1fdf3
commit 5cff767e32
2 changed files with 7 additions and 14 deletions

View File

@@ -81,12 +81,10 @@ function LayoutInner({ children }: { children: React.ReactNode }) {
setIsSwitchingOrg(true) setIsSwitchingOrg(true)
const { access_token } = await switchContext(orgId) const { access_token } = await switchContext(orgId)
await setSessionAction(access_token) await setSessionAction(access_token)
router.refresh() // Refresh auth context (re-fetches /auth/user/me with new JWT, updates org_id + SWR cache)
// Allow time for server components to re-fetch with new auth await auth.refresh()
setTimeout(() => { router.push('/')
setIsSwitchingOrg(false) setTimeout(() => setIsSwitchingOrg(false), 300)
router.push('/')
}, 600)
} catch (err) { } catch (err) {
setIsSwitchingOrg(false) setIsSwitchingOrg(false)
logger.error('Failed to switch organization', err) logger.error('Failed to switch organization', err)

View File

@@ -112,14 +112,9 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
try { try {
const userData = await apiRequest<User>('/auth/user/me') const userData = await apiRequest<User>('/auth/user/me')
setUser(prev => { setUser(() => {
const merged = { localStorage.setItem('user', JSON.stringify(userData))
...userData, return userData
org_id: prev?.org_id,
role: prev?.role
}
localStorage.setItem('user', JSON.stringify(merged))
return merged
}) })
} catch (e) { } catch (e) {
logger.error('Failed to refresh user data', e) logger.error('Failed to refresh user data', e)