cncjs

Форк
0
/
menu-template.default.js 
90 строк · 2.0 Кб
1
import { shell } from 'electron';
2
import trimStart from 'lodash/trimStart';
3

4
// https://github.com/electron/electron/blob/master/docs/api/menu/
5
export default (options) => {
6
  // mountPoints = [
7
  //   {
8
  //     route: '/widget',
9
  //     target: '~+/widget'
10
  //   }
11
  // ]
12
  const { address, port, mountPoints = [] } = { ...options };
13
  let menuItems = [];
14

15
  if (mountPoints.length > 0) {
16
    menuItems = [
17
      { type: 'separator' },
18
      { label: 'Mount Points', enabled: false },
19
    ].concat(
20
      mountPoints.map(mountPoint => ({
21
        label: `  ${mountPoint.route}`,
22
        click: () => {
23
          const routePath = trimStart(mountPoint.route, '/');
24
          const url = `http://${address}:${port}/${routePath}`;
25
          shell.openExternal(url);
26
        }
27
      }))
28
    );
29
  }
30

31
  const template = [
32
    {
33
      label: 'Edit',
34
      submenu: [
35
        { role: 'undo' },
36
        { role: 'redo' },
37
        { type: 'separator' },
38
        { role: 'cut' },
39
        { role: 'copy' },
40
        { role: 'paste' },
41
        { role: 'pasteandmatchstyle' },
42
        { role: 'delete' },
43
        { role: 'selectall' }
44
      ]
45
    },
46
    {
47
      label: 'View',
48
      submenu: [
49
        { role: 'reload' },
50
        { role: 'forcereload' },
51
        { role: 'toggledevtools' },
52
        { type: 'separator' },
53
        { role: 'resetzoom' },
54
        { role: 'zoomin' },
55
        { role: 'zoomout' },
56
        { type: 'separator' },
57
        { role: 'togglefullscreen' },
58
        { type: 'separator' },
59
        {
60
          label: 'View In Browser',
61
          click: () => {
62
            const url = `http://${address}:${port}`;
63
            shell.openExternal(url);
64
          }
65
        },
66
        ...menuItems
67
      ]
68
    },
69
    {
70
      role: 'window',
71
      submenu: [
72
        { role: 'minimize' },
73
        { role: 'close' }
74
      ]
75
    },
76
    {
77
      role: 'help',
78
      submenu: [
79
        {
80
          label: 'Learn More',
81
          click: () => {
82
            shell.openExternal('https://github.com/cncjs/cncjs/wiki');
83
          }
84
        }
85
      ]
86
    }
87
  ];
88

89
  return template;
90
};
91

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.