feat: support open page in a new tab

This commit is contained in:
QiShaoXuan
2022-12-21 15:03:11 +08:00
parent 0525866b6d
commit 954298480b
3 changed files with 9 additions and 4 deletions
@@ -34,7 +34,7 @@ export const OperationCell = ({ pageMeta }: { pageMeta: PageMeta }) => {
</MenuItem>
<MenuItem
onClick={() => {
openPage(id);
openPage(id, {}, true);
}}
icon={<OpenInNewIcon />}
>
+8 -2
View File
@@ -9,7 +9,8 @@ export type EditorHandlers = {
// createPage: (params?: { pageId?: string; title?: string }) => Promise<Page>;
openPage: (
pageId: string,
query?: { [key: string]: string }
query?: { [key: string]: string },
newTab?: boolean
) => Promise<boolean>;
getPageMeta: (pageId: string) => PageMeta | null;
toggleDeletePage: (pageId: string) => Promise<boolean>;
@@ -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,
@@ -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<StoreWorkspace | null> | null;