fix(core): user info should be updated when session reloaded (#6382)

This commit is contained in:
CatsJuice
2024-03-29 03:25:12 +00:00
parent 0abd24654d
commit 605a5abee8

View File

@@ -1,6 +1,6 @@
import { DebugLogger } from '@affine/debug';
import { getBaseUrl } from '@affine/graphql';
import { useMemo, useReducer } from 'react';
import { useEffect, useMemo, useReducer } from 'react';
import useSWR from 'swr';
import { SessionFetchErrorRightAfterLoginOrSignUp } from '../../unexpected-application-state/errors';
@@ -145,6 +145,21 @@ export function useCurrentUser(): CheckedUser {
[dispatcher, session]
);
// update user when session reloaded
// maybe lift user state up to global state?
useEffect(() => {
if (session.user) {
dispatcher({ type: 'update', payload: session.user });
} else {
dispatcher({ type: 'fetchError', payload: null });
}
}, [
session.user,
session.user?.id,
session.user?.name,
session.user?.avatarUrl,
]);
return useMemo(
() => ({
...user,