MCPcopy
hub / github.com/wavetermdev/waveterm / getWorkspaceMenu

Function getWorkspaceMenu

emain/emain-menu.ts:48–76  ·  view source on GitHub ↗
(ww?: WaveBrowserWindow)

Source from the content-addressed store, hash-verified

46}
47
48async function getWorkspaceMenu(ww?: WaveBrowserWindow): Promise<Electron.MenuItemConstructorOptions[]> {
49 const workspaceList = await RpcApi.WorkspaceListCommand(ElectronWshClient);
50 const workspaceMenu: Electron.MenuItemConstructorOptions[] = [
51 {
52 label: "Create Workspace",
53 click: (_, window) => fireAndForget(() => createWorkspace((window as WaveBrowserWindow) ?? ww)),
54 },
55 ];
56 function getWorkspaceSwitchAccelerator(i: number): string {
57 if (i < 9) {
58 return unamePlatform == "darwin" ? `Command+Control+${i + 1}` : `Alt+Control+${i + 1}`;
59 }
60 }
61 if (workspaceList?.length) {
62 workspaceMenu.push(
63 { type: "separator" },
64 ...workspaceList.map<Electron.MenuItemConstructorOptions>((workspace, i) => {
65 return {
66 label: `${workspace.workspacedata.name}`,
67 click: (_, window) => {
68 ((window as WaveBrowserWindow) ?? ww)?.switchWorkspace(workspace.workspacedata.oid);
69 },
70 accelerator: getWorkspaceSwitchAccelerator(i),
71 };
72 })
73 );
74 }
75 return workspaceMenu;
76}
77
78function makeEditMenu(fullConfig?: FullConfigType): Electron.MenuItemConstructorOptions[] {
79 let pasteAccelerator: string;

Callers 1

makeFullAppMenuFunction · 0.85

Calls 6

fireAndForgetFunction · 0.90
createWorkspaceFunction · 0.90
pushMethod · 0.80
switchWorkspaceMethod · 0.80
WorkspaceListCommandMethod · 0.65

Tested by

no test coverage detected