forked from cncjs/cncjs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
menu-template.default.js
90 lines (86 loc) · 2.54 KB
/
menu-template.default.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import { shell } from 'electron';
import trimStart from 'lodash/trimStart';
// https://github.com/electron/electron/blob/master/docs/api/menu/
export default (options) => {
// mountPoints = [
// {
// route: '/widget',
// target: '~+/widget'
// }
// ]
const { address, port, mountPoints = [] } = { ...options };
let menuItems = [];
if (mountPoints.length > 0) {
menuItems = [
{ type: 'separator' },
{ label: 'Mount Points', enabled: false },
].concat(
mountPoints.map(mountPoint => ({
label: ` ${mountPoint.route}`,
click: () => {
const routePath = trimStart(mountPoint.route, '/');
const url = `http:https://${address}:${port}/${routePath}`;
shell.openExternal(url);
}
}))
);
}
const template = [
{
label: 'Edit',
submenu: [
{ role: 'undo' },
{ role: 'redo' },
{ type: 'separator' },
{ role: 'cut' },
{ role: 'copy' },
{ role: 'paste' },
{ role: 'pasteandmatchstyle' },
{ role: 'delete' },
{ role: 'selectall' }
]
},
{
label: 'View',
submenu: [
{ role: 'reload' },
{ role: 'forcereload' },
{ role: 'toggledevtools' },
{ type: 'separator' },
{ role: 'resetzoom' },
{ role: 'zoomin' },
{ role: 'zoomout' },
{ type: 'separator' },
{ role: 'togglefullscreen' },
{ type: 'separator' },
{
label: 'View In Browser',
click: () => {
const url = `http:https://${address}:${port}`;
shell.openExternal(url);
}
},
...menuItems
]
},
{
role: 'window',
submenu: [
{ role: 'minimize' },
{ role: 'close' }
]
},
{
role: 'help',
submenu: [
{
label: 'Learn More',
click: () => {
shell.openExternal('https://github.com/cncjs/cncjs/wiki');
}
}
]
}
];
return template;
};