fix(ui): logout type error when user is null during locale switch (#13514)

### What?

Prevent a `TypeError: Cannot read properties of null (reading
'collection')` in the admin UI when switching locales by hardening
`AuthProvider.logOut`.

### Why?

During locale transitions, user can briefly be null. The existing code
used `user.collection` unguarded

### How?

- Use `userSlug` over `user.collection`.
- Always clear local auth in a `finally` block (`setNewUser(null)`,
`revokeTokenAndExpire()`), regardless of request outcome.

Fixes #13313 


---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1211093549155962
This commit is contained in:
Patrik
2025-08-20 11:02:09 -04:00
committed by GitHub
parent f44e27691e
commit b3e48f8efa

View File

@@ -192,13 +192,17 @@ export function AuthProvider({
const logOut = useCallback(async () => {
try {
await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`)
setNewUser(null)
revokeTokenAndExpire()
if (user && user.collection) {
await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`)
}
return true
} catch (e) {
toast.error(`Logging out failed: ${e.message}`)
return false
} finally {
// Always clear local auth state
setNewUser(null)
revokeTokenAndExpire()
}
}, [apiRoute, revokeTokenAndExpire, serverURL, setNewUser, user])