diff --git a/packages/app/src/providers/app-state-provider/hooks.ts b/packages/app/src/providers/app-state-provider/hooks.ts index 6abce3eaf1..69129c87e7 100644 --- a/packages/app/src/providers/app-state-provider/hooks.ts +++ b/packages/app/src/providers/app-state-provider/hooks.ts @@ -28,21 +28,23 @@ export const useLoadPage = () => { return; } const page = pageId ? workspace?.getPage(pageId) : null; - if (!page) { - const savedPageId = workspace.meta.pageMetas[0]?.id; - if (savedPageId) { - router.push(`/workspace/${currentWorkspaceId}/${savedPageId}`); + if (page) { + loadPage?.current?.(pageId); + return; + } + + const savedPageId = workspace.meta.pageMetas[0]?.id; + if (savedPageId) { + router.push(`/workspace/${currentWorkspaceId}/${savedPageId}`); + return; + } + + createPage?.current?.()?.then(async pageId => { + if (!pageId) { return; } - - createPage?.current?.()?.then(async pageId => { - if (!pageId) { - return; - } - router.push(`/workspace/${currentWorkspaceId}/${pageId}`); - }); - } - loadPage?.current?.(pageId); + router.push(`/workspace/${currentWorkspaceId}/${pageId}`); + }); }, [workspace, pageId, loadPage, createPage, router, currentWorkspaceId]); return currentPage?.pageId === pageId ? currentPage : null; diff --git a/packages/app/src/providers/app-state-provider/provider.tsx b/packages/app/src/providers/app-state-provider/provider.tsx index a22d23476e..981fec9222 100644 --- a/packages/app/src/providers/app-state-provider/provider.tsx +++ b/packages/app/src/providers/app-state-provider/provider.tsx @@ -78,7 +78,7 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { if (pageId === currentPage?.pageId) { return currentPage; } - const page = currentWorkspace?.getPage(pageId) || null; + const page = (pageId ? currentWorkspace?.getPage(pageId) : null) || null; setState(state => ({ ...state, currentPage: page })); return page; };