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:
@@ -192,13 +192,17 @@ export function AuthProvider({
|
||||
|
||||
const logOut = useCallback(async () => {
|
||||
try {
|
||||
if (user && user.collection) {
|
||||
await requests.post(`${serverURL}${apiRoute}/${user.collection}/logout`)
|
||||
setNewUser(null)
|
||||
revokeTokenAndExpire()
|
||||
}
|
||||
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])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user