From 21d24ad54284bb4d8aac969cd75f3a5450703c69 Mon Sep 17 00:00:00 2001 From: zuomeng wang Date: Fri, 13 Jan 2023 15:54:21 +0800 Subject: [PATCH] fix: deepscan error (#733) --- packages/app/src/components/editor/index.tsx | 2 +- .../src/pages/public-workspace/[workspaceId]/[pageId].tsx | 2 +- packages/app/src/providers/app-state-provider/Provider.tsx | 7 ++++--- packages/data-center/src/datacenter.ts | 4 +++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/app/src/components/editor/index.tsx b/packages/app/src/components/editor/index.tsx index 3d62a9323a..e7d962e8dd 100644 --- a/packages/app/src/components/editor/index.tsx +++ b/packages/app/src/components/editor/index.tsx @@ -60,7 +60,7 @@ export const Editor = ({ page, workspace, setEditor }: Props) => { } setEditor(editor); - document.title = page?.meta.title || 'Untitled'; + document.title = page.meta.title || 'Untitled'; return ret; }, [workspace, page, setEditor]); diff --git a/packages/app/src/pages/public-workspace/[workspaceId]/[pageId].tsx b/packages/app/src/pages/public-workspace/[workspaceId]/[pageId].tsx index 734e627f3e..a3629580b5 100644 --- a/packages/app/src/pages/public-workspace/[workspaceId]/[pageId].tsx +++ b/packages/app/src/pages/public-workspace/[workspaceId]/[pageId].tsx @@ -25,7 +25,7 @@ const Page: NextPageWithLayout = () => { p => p.id === router.query.pageId ) ) { - const page = data.blocksuiteWorkspace?.getPage( + const page = data.blocksuiteWorkspace.getPage( router.query.pageId as string ); page && setPage(page); diff --git a/packages/app/src/providers/app-state-provider/Provider.tsx b/packages/app/src/providers/app-state-provider/Provider.tsx index 77b50384fa..59cfee3344 100644 --- a/packages/app/src/providers/app-state-provider/Provider.tsx +++ b/packages/app/src/providers/app-state-provider/Provider.tsx @@ -101,14 +101,15 @@ export const AppStateProvider = ({ } const workspace = (await dataCenter.loadWorkspace(workspaceId)) ?? null; let isOwner; - if (workspace.provider === 'local') { + if (workspace?.provider === 'local') { // isOwner is useful only in the cloud isOwner = true; } else { - isOwner = workspace.owner && user?.id === workspace.owner.id; + // We must ensure workspace.owner exists, then ensure id same. + isOwner = workspace?.owner && user?.id === workspace.owner.id; } const pageList = - (workspace.blocksuiteWorkspace?.meta.pageMetas as PageMeta[]) ?? []; + (workspace?.blocksuiteWorkspace?.meta.pageMetas as PageMeta[]) ?? []; setAppState({ ...appState, currentWorkspace: workspace, diff --git a/packages/data-center/src/datacenter.ts b/packages/data-center/src/datacenter.ts index e8876ac2d6..1488d8b84d 100644 --- a/packages/data-center/src/datacenter.ts +++ b/packages/data-center/src/datacenter.ts @@ -150,7 +150,9 @@ export class DataCenter { * @param {string} workspaceId workspace id * @returns {Promise} */ - public async loadWorkspace(workspaceId: string) { + public async loadWorkspace( + workspaceId: string + ): Promise { const workspaceUnit = this._workspaceUnitCollection.find(workspaceId); assert(workspaceUnit, 'Workspace not found'); const currentProvider = this.providerMap.get(workspaceUnit.provider);