diff --git a/apps/web/src/atoms/mode.ts b/apps/web/src/atoms/mode.ts new file mode 100644 index 0000000000..bb883df6b6 --- /dev/null +++ b/apps/web/src/atoms/mode.ts @@ -0,0 +1,12 @@ +import { currentPageIdAtom } from '@toeverything/plugin-infra/manager'; +import { atom } from 'jotai/vanilla'; + +import { pageSettingFamily } from './index'; + +export const currentModeAtom = atom<'page' | 'edgeless'>(get => { + const pageId = get(currentPageIdAtom); + if (!pageId) { + return 'page'; + } + return get(pageSettingFamily(pageId)).mode; +}); diff --git a/apps/web/src/components/blocksuite/workspace-header/header.tsx b/apps/web/src/components/blocksuite/workspace-header/header.tsx index d5254edacf..3ee4db07d6 100644 --- a/apps/web/src/components/blocksuite/workspace-header/header.tsx +++ b/apps/web/src/components/blocksuite/workspace-header/header.tsx @@ -23,7 +23,7 @@ import { import { guideDownloadClientTipAtom } from '../../../atoms/guide'; import { contentLayoutAtom } from '../../../atoms/layout'; -import { useCurrentMode } from '../../../hooks/current/use-current-mode'; +import { currentModeAtom } from '../../../atoms/mode'; import type { AffineOfficialWorkspace } from '../../../shared'; import { DownloadClientTip } from './download-tips'; import EditPage from './header-right-items/edit-page'; @@ -205,7 +205,7 @@ export const Header = forwardRef< const open = useAtomValue(appSidebarOpenAtom); const appSidebarFloating = useAtomValue(appSidebarFloatingAtom); - const mode = useCurrentMode(); + const mode = useAtomValue(currentModeAtom); return (