diff --git a/packages/app/src/components/workspace-setting/general/general.tsx b/packages/app/src/components/workspace-setting/general/general.tsx index da2d0be213..e2b4dcbb62 100644 --- a/packages/app/src/components/workspace-setting/general/general.tsx +++ b/packages/app/src/components/workspace-setting/general/general.tsx @@ -34,9 +34,7 @@ export const GeneralPage = ({ const [showDelete, setShowDelete] = useState(false); const [workspaceName, setWorkspaceName] = useState( workspaces[workspace.id]?.meta.name || - (workspace.type === WorkspaceType.Private && user - ? user.name - : `workspace-${workspace?.id}`) + (workspace.type === WorkspaceType.Private && user ? user.name : '') ); const debouncedRefreshWorkspacesMeta = debounce(() => { refreshWorkspacesMeta(); diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx index 8c2a166cfd..d57a698ae4 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx @@ -81,7 +81,8 @@ export const SelectorPopperContent = ({ refreshWorkspacesMeta(); refreshDetails(); } - }, [isShow, refreshDetails, refreshWorkspacesMeta]); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isShow]); return !user ? ( diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx index d8233f2126..c49452475f 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx @@ -26,7 +26,7 @@ export const WorkspaceSelector = () => { {currentWorkspace?.meta.name || (workspaceMeta?.type === WorkspaceType.Private && user ? user.name - : `workspace-${workspaceMeta?.id}`)} + : 'AFFINE')} diff --git a/packages/app/src/providers/app-state-provider/context.ts b/packages/app/src/providers/app-state-provider/context.ts index 673216992f..aa2d92f64c 100644 --- a/packages/app/src/providers/app-state-provider/context.ts +++ b/packages/app/src/providers/app-state-provider/context.ts @@ -8,7 +8,8 @@ import type { import type { EditorContainer } from '@blocksuite/editor'; export type LoadWorkspaceHandler = ( workspaceId: string, - websocket?: boolean + websocket?: boolean, + user?: AccessTokenMessage | null ) => Promise | null; export type CreateEditorHandler = (page: StorePage) => EditorContainer | null; diff --git a/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx b/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx index 9d60e8c4a5..8315603738 100644 --- a/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx +++ b/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx @@ -27,7 +27,8 @@ const DynamicBlocksuite = ({ useEffect(() => { const openWorkspace: LoadWorkspaceHandler = ( workspaceId: string, - websocket = false + websocket = false, + user ) => // eslint-disable-next-line no-async-promise-executor new Promise(async resolve => { @@ -35,7 +36,6 @@ const DynamicBlocksuite = ({ room: workspaceId, providers: [], }).register(BlockSchema); - if (websocket && token.refresh) { // FIXME: if add websocket provider, the first page will be blank const ws = new WebsocketProvider( @@ -64,11 +64,16 @@ const DynamicBlocksuite = ({ const indexDBProvider = workspace.providers.find( p => p instanceof IndexedDBDocProvider ); - const updates = await downloadWorkspace({ workspaceId }); - updates && - StoreWorkspace.Y.applyUpdate(workspace.doc, new Uint8Array(updates)); - // if after update, the space:meta is empty, then we need to get map with doc - workspace.doc.getMap('space:meta'); + if (user) { + const updates = await downloadWorkspace({ workspaceId }); + updates && + StoreWorkspace.Y.applyUpdate( + workspace.doc, + new Uint8Array(updates) + ); + // if after update, the space:meta is empty, then we need to get map with doc + workspace.doc.getMap('space:meta'); + } if (indexDBProvider) { (indexDBProvider as IndexedDBDocProvider).on('synced', async () => { resolve(workspace); diff --git a/packages/app/src/providers/app-state-provider/provider.tsx b/packages/app/src/providers/app-state-provider/provider.tsx index ab05cf831b..ee6cbc97f8 100644 --- a/packages/app/src/providers/app-state-provider/provider.tsx +++ b/packages/app/src/providers/app-state-provider/provider.tsx @@ -64,7 +64,8 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { (async () => { const workspacesList = await Promise.all( state.workspacesMeta.map(async ({ id }) => { - const workspace = (await loadWorkspaceHandler?.(id)) || null; + const workspace = + (await loadWorkspaceHandler?.(id, false, state.user)) || null; return { id, workspace }; }) ); @@ -108,7 +109,8 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { return state.currentWorkspace; } - const workspace = (await loadWorkspaceHandler?.(workspaceId, true)) || null; + const workspace = + (await loadWorkspaceHandler?.(workspaceId, true, state.user)) || null; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error