diff --git a/packages/app/src/components/page-list/operation-cell.tsx b/packages/app/src/components/page-list/operation-cell.tsx index 25b2091ace..570b48edc4 100644 --- a/packages/app/src/components/page-list/operation-cell.tsx +++ b/packages/app/src/components/page-list/operation-cell.tsx @@ -34,7 +34,7 @@ export const OperationCell = ({ pageMeta }: { pageMeta: PageMeta }) => { { - openPage(id); + openPage(id, {}, true); }} icon={} > diff --git a/packages/app/src/hooks/use-page-helper.ts b/packages/app/src/hooks/use-page-helper.ts index cfc8444e5f..e5a30e43fa 100644 --- a/packages/app/src/hooks/use-page-helper.ts +++ b/packages/app/src/hooks/use-page-helper.ts @@ -9,7 +9,8 @@ export type EditorHandlers = { // createPage: (params?: { pageId?: string; title?: string }) => Promise; openPage: ( pageId: string, - query?: { [key: string]: string } + query?: { [key: string]: string }, + newTab?: boolean ) => Promise; getPageMeta: (pageId: string) => PageMeta | null; toggleDeletePage: (pageId: string) => Promise; @@ -77,8 +78,13 @@ export const usePageHelper = (): EditorHandlers => { // TODO: workspace.meta.removePage or workspace.removePage? currentWorkspace!.meta.removePage(pageId); }, - openPage: (pageId, query = {}) => { + openPage: (pageId, query = {}, newTab = false) => { pageId = pageId.replace('space:', ''); + + if (newTab) { + window.open(`/workspace/${currentWorkspaceId}/${pageId}`, '_blank'); + return Promise.resolve(true); + } return router.push({ pathname: `/workspace/${currentWorkspaceId}/${pageId}`, query, diff --git a/packages/app/src/providers/app-state-provider/context.ts b/packages/app/src/providers/app-state-provider/context.ts index eb1f84ffea..40d79a3a7f 100644 --- a/packages/app/src/providers/app-state-provider/context.ts +++ b/packages/app/src/providers/app-state-provider/context.ts @@ -6,7 +6,6 @@ import type { Workspace as StoreWorkspace, } from '@blocksuite/store'; import type { EditorContainer } from '@blocksuite/editor'; -import { PageMeta } from './interface'; export type LoadWorkspaceHandler = ( workspaceId: string ) => Promise | null;