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)
const { access_token } = await switchContext(orgId)
await setSessionAction(access_token)
router.refresh()
// Allow time for server components to re-fetch with new auth
setTimeout(() => {
setIsSwitchingOrg(false)
router.push('/')
}, 600)
// Refresh auth context (re-fetches /auth/user/me with new JWT, updates org_id + SWR cache)
await auth.refresh()
router.push('/')
setTimeout(() => setIsSwitchingOrg(false), 300)
} catch (err) {
setIsSwitchingOrg(false)
logger.error('Failed to switch organization', err)

View File

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