diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts index c8ce947d0..1d8d18d94 100644 --- a/app/src/menus/workspace.ts +++ b/app/src/menus/workspace.ts @@ -1,19 +1,20 @@ import {MenuItem} from "./Menu"; /// #if !BROWSER import {dialog, getCurrentWindow} from "@electron/remote"; -import {ipcRenderer} from "electron"; +import {ipcRenderer, shell} from "electron"; /// #endif import {openHistory} from "../history/history"; import {getOpenNotebookCount, originalPath} from "../util/pathName"; import {mountHelp, newDailyNote} from "../util/mount"; import {fetchPost} from "../util/fetch"; import {Constants} from "../constants"; -import {setStorageVal} from "../protyle/util/compatibility"; +import {setStorageVal, writeText} from "../protyle/util/compatibility"; import {openCard} from "../card/openCard"; import {openSetting} from "../config"; import {getAllDocks} from "../layout/getAll"; import {getDockByType} from "../layout/util"; import {lockScreen} from "../dialog/processSystem"; +import {showMessage} from "../dialog/message"; export const workspaceMenu = (rect: DOMRect) => { if (!window.siyuan.menus.menu.element.classList.contains("fn__none") && @@ -52,8 +53,9 @@ export const workspaceMenu = (rect: DOMRect) => { submenu: dockMenu }).element); /// #if !BROWSER - const workspaceMenu: IMenu[] = [{ + const workspaceSubMenu: IMenu[] = [{ label: window.siyuan.languages.openWorkspace, + iconHTML: Constants.ZWSP, click: async () => { const localPath = await dialog.showOpenDialog({ defaultPath: window.siyuan.config.system.homeDir, @@ -65,13 +67,14 @@ export const workspaceMenu = (rect: DOMRect) => { openWorkspace(localPath.filePaths[0]); } }] + workspaceSubMenu.push({type: "separator"}); response.data.forEach((item: IWorkspace) => { - workspaceMenu.push(workspaceItem(item)); + workspaceSubMenu.push(workspaceItem(item) as IMenu); }); window.siyuan.menus.menu.append(new MenuItem({ label: window.siyuan.languages.workspaceList, type: "submenu", - submenu: workspaceMenu, + submenu: workspaceSubMenu, }).element); /// #endif window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element); @@ -186,34 +189,36 @@ const openWorkspace = (workspace: string) => { const workspaceItem = (item: IWorkspace) => { /// #if !BROWSER return { - label: `