diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-page-list/utils.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-page-list/utils.tsx index 8180d0add1..48d6edf5ab 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-page-list/utils.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-page-list/utils.tsx @@ -19,8 +19,8 @@ export const usePageHelper = (blockSuiteWorkspace: BlockSuiteWorkspace) => { ); const setPageMode = useSetAtom(setPageModeAtom); const createPageAndOpen = useCallback( - (id?: string, mode?: 'page' | 'edgeless') => { - const page = createPage(id); + (mode?: 'page' | 'edgeless') => { + const page = createPage(); initEmptyPage(page).catch(error => { toast(`Failed to initialize Page: ${error.message}`); }); @@ -30,12 +30,9 @@ export const usePageHelper = (blockSuiteWorkspace: BlockSuiteWorkspace) => { }, [blockSuiteWorkspace.id, createPage, openPage, setPageMode] ); - const createEdgelessAndOpen = useCallback( - (id?: string) => { - return createPageAndOpen(id, 'edgeless'); - }, - [createPageAndOpen] - ); + const createEdgelessAndOpen = useCallback(() => { + return createPageAndOpen('edgeless'); + }, [createPageAndOpen]); const importFileAndOpen = useCallback(async () => { const { showImportModal } = await import('@blocksuite/blocks'); const onSuccess = (pageIds: string[], isWorkspaceFile: boolean) => { diff --git a/packages/frontend/core/src/layouts/workspace-layout.tsx b/packages/frontend/core/src/layouts/workspace-layout.tsx index c5b6db9293..3e28b5cbab 100644 --- a/packages/frontend/core/src/layouts/workspace-layout.tsx +++ b/packages/frontend/core/src/layouts/workspace-layout.tsx @@ -33,7 +33,6 @@ import { useBlockSuitePageMeta } from '@toeverything/hooks/use-block-suite-page- import { loadPage } from '@toeverything/hooks/use-block-suite-workspace-page'; import { currentWorkspaceIdAtom } from '@toeverything/infra/atom'; import { useAtom, useAtomValue, useSetAtom } from 'jotai'; -import { nanoid } from 'nanoid'; import type { PropsWithChildren, ReactNode } from 'react'; import { lazy, Suspense, useCallback, useEffect, useState } from 'react'; import { useLocation, useParams } from 'react-router-dom'; @@ -198,12 +197,8 @@ export const WorkspaceLayoutInner = ({ }, [currentWorkspace.blockSuiteWorkspace.doc]); const handleCreatePage = useCallback(() => { - const id = nanoid(); - pageHelper.createPage(id); - const page = currentWorkspace.blockSuiteWorkspace.getPage(id); - assertExists(page); - return page; - }, [currentWorkspace.blockSuiteWorkspace, pageHelper]); + return pageHelper.createPage(); + }, [pageHelper]); const [, setOpenQuickSearchModalAtom] = useAtom(openQuickSearchModalAtom); const handleOpenQuickSearchModal = useCallback(() => { diff --git a/packages/frontend/hooks/src/use-block-suite-workspace-helper.ts b/packages/frontend/hooks/src/use-block-suite-workspace-helper.ts index cbcd7a9a4e..3695884435 100644 --- a/packages/frontend/hooks/src/use-block-suite-workspace-helper.ts +++ b/packages/frontend/hooks/src/use-block-suite-workspace-helper.ts @@ -1,14 +1,10 @@ import type { Page, Workspace } from '@blocksuite/store'; import { useMemo } from 'react'; -import { v4 as uuid } from 'uuid'; export function useBlockSuiteWorkspaceHelper(blockSuiteWorkspace: Workspace) { return useMemo( () => ({ createPage: (pageId?: string): Page => { - if (!pageId) { - pageId = uuid(); - } return blockSuiteWorkspace.createPage({ id: pageId }); }, }), diff --git a/packages/frontend/workspace/src/manager/index.ts b/packages/frontend/workspace/src/manager/index.ts index bf1e99bf94..2bc94c2cff 100644 --- a/packages/frontend/workspace/src/manager/index.ts +++ b/packages/frontend/workspace/src/manager/index.ts @@ -4,13 +4,9 @@ import { WorkspaceFlavour } from '@affine/env/workspace'; import { createAffinePublicProviders } from '@affine/workspace/providers'; import { __unstableSchemas, AffineSchemas } from '@blocksuite/blocks/models'; import type { DocProviderCreator, StoreOptions } from '@blocksuite/store'; -import { - createIndexeddbStorage, - Generator, - Schema, - Workspace, -} from '@blocksuite/store'; +import { createIndexeddbStorage, Schema, Workspace } from '@blocksuite/store'; import { INTERNAL_BLOCKSUITE_HASH_MAP } from '@toeverything/infra/__internal__/workspace'; +import { nanoid } from 'nanoid'; import type { Doc } from 'yjs'; import type { Transaction } from 'yjs'; @@ -94,7 +90,6 @@ export function getOrCreateWorkspace( if (INTERNAL_BLOCKSUITE_HASH_MAP.has(id)) { return INTERNAL_BLOCKSUITE_HASH_MAP.get(id) as Workspace; } - const idGenerator = Generator.NanoID; const blobStorages: StoreOptions['blobStorages'] = []; if (flavour === WorkspaceFlavour.AFFINE_CLOUD) { @@ -135,7 +130,7 @@ export function getOrCreateWorkspace( isSSR: !isBrowser, providerCreators: typeof window === 'undefined' ? [] : providerCreators, blobStorages: blobStorages, - idGenerator, + idGenerator: () => nanoid(), schema: globalBlockSuiteSchema, }); createMonitor(workspace.doc);