diff --git a/apps/core/src/components/blocksuite/block-suite-page-list/utils.tsx b/apps/core/src/components/blocksuite/block-suite-page-list/utils.tsx index 970c8b4c5b..54cb82bbcd 100644 --- a/apps/core/src/components/blocksuite/block-suite-page-list/utils.tsx +++ b/apps/core/src/components/blocksuite/block-suite-page-list/utils.tsx @@ -22,9 +22,7 @@ export const usePageHelper = (blockSuiteWorkspace: BlockSuiteWorkspace) => { (id?: string, mode?: 'page' | 'edgeless') => { const page = createPage(id); initEmptyPage(page); // we don't need to wait it to be loaded right? - if (mode) { - setPageMode(page.id, mode); - } + setPageMode(page.id, mode || 'page'); openPage(blockSuiteWorkspace.id, page.id); }, [blockSuiteWorkspace.id, createPage, openPage, setPageMode] diff --git a/apps/core/src/pages/workspace/detail-page.tsx b/apps/core/src/pages/workspace/detail-page.tsx index 322d6d9961..4f12f69ed4 100644 --- a/apps/core/src/pages/workspace/detail-page.tsx +++ b/apps/core/src/pages/workspace/detail-page.tsx @@ -14,12 +14,14 @@ import { currentWorkspaceIdAtom, getCurrentStore, } from '@toeverything/infra/atom'; -import { useAtomValue } from 'jotai'; +import { useAtomValue, useSetAtom } from 'jotai'; import { type ReactElement, useCallback } from 'react'; import type { LoaderFunction } from 'react-router-dom'; import { redirect } from 'react-router-dom'; import { getUIAdapter } from '../../adapters/workspace'; +import { setPageModeAtom } from '../../atoms'; +import { currentModeAtom } from '../../atoms/mode'; import { useCurrentWorkspace } from '../../hooks/current/use-current-workspace'; import { useNavigateHelper } from '../../hooks/use-navigate-helper'; @@ -31,8 +33,12 @@ const DetailPageImpl = (): ReactElement => { assertExists(currentPageId); const blockSuiteWorkspace = currentWorkspace.blockSuiteWorkspace; const collectionManager = useCollectionManager(currentWorkspace.id); + const mode = useAtomValue(currentModeAtom); + const setPageMode = useSetAtom(setPageModeAtom); + const onLoad = useCallback( (_: Page, editor: EditorContainer) => { + setPageMode(currentPageId, mode); const dispose = editor.slots.pageLinkClicked.on(({ pageId }) => { return openPage(blockSuiteWorkspace.id, pageId); }); @@ -49,9 +55,12 @@ const DetailPageImpl = (): ReactElement => { [ blockSuiteWorkspace.id, collectionManager, + currentPageId, currentWorkspace.id, jumpToSubPath, + mode, openPage, + setPageMode, ] );