diff --git a/packages/app/src/providers/app-state-provider/Provider.tsx b/packages/app/src/providers/app-state-provider/Provider.tsx index b8601e9eac..de8764667c 100644 --- a/packages/app/src/providers/app-state-provider/Provider.tsx +++ b/packages/app/src/providers/app-state-provider/Provider.tsx @@ -32,7 +32,9 @@ export const AppStateProvider = ({ if (dataCenter.workspaces.length === 0) { await createDefaultWorkspace(dataCenter); } - setUser((await dataCenter.getUserInfo()) || null); + setUser( + (await dataCenter.getUserInfo(dataCenter.providers[0]?.id)) || null + ); setAppState({ dataCenter, workspaceList: dataCenter.workspaces, diff --git a/packages/data-center/src/provider/tauri-ipc/index.ts b/packages/data-center/src/provider/tauri-ipc/index.ts index 4412cc1f1f..32739f385d 100644 --- a/packages/data-center/src/provider/tauri-ipc/index.ts +++ b/packages/data-center/src/provider/tauri-ipc/index.ts @@ -13,6 +13,7 @@ import type { WorkspaceUnit } from 'src/workspace-unit.js'; import { createWorkspaceUnit, loadWorkspaceUnit } from '../local/utils.js'; import { WorkspaceWithPermission } from './ipc/types/workspace.js'; import { applyUpdate } from '../../utils/index.js'; +import { User } from 'src/types/index.js'; /** * init - createUser - create first workspace and ydoc - loadWorkspace - return the first workspace - wrapWorkspace - #initDocFromIPC - applyUpdate - on('update') - updateYDocument @@ -20,7 +21,7 @@ import { applyUpdate } from '../../utils/index.js'; * (init - createUser - error) loadWorkspace - return the first workspace - wrapWorkspace - #initDocFromIPC - applyUpdate - on('update') - updateYDocument */ export class TauriIPCProvider extends LocalProvider { - static id = 'tauri-ipc'; + public id = 'tauri-ipc'; static defaultUserEmail = 'xxx@xx.xx'; /** * // TODO: We only have one user in this version of app client. But may support switch user later. @@ -60,6 +61,22 @@ export class TauriIPCProvider extends LocalProvider { } } + /** + * get auth user info + * @returns + */ + public async getUserInfo(): Promise { + const user = await this.#ipc?.getUser({ + email: TauriIPCProvider.defaultUserEmail, + }); + if (user?.name !== undefined) { + return { + ...user, + avatar: user?.avatar_url || '', + }; + } + } + async #initDocFromIPC( workspaceID: string, blocksuiteWorkspace: BlocksuiteWorkspace