-
Notifications
You must be signed in to change notification settings - Fork 891
Expand file tree
/
Copy pathapplication.ts
More file actions
74 lines (69 loc) · 1.65 KB
/
Copy pathapplication.ts
File metadata and controls
74 lines (69 loc) · 1.65 KB
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
import {appMenu} from 'electron-util';
import {getAboutMenuItem, getExportHistoryMenuItem, getOpenFileMenuItem, getPreferencesMenuItem, getSendFeedbackMenuItem} from './common';
import {MenuItemId, MenuOptions} from './utils';
import {t} from '../common/localization';
const getAppMenuItem = () => {
const appMenuItem = appMenu([getPreferencesMenuItem()]);
// @ts-expect-error
appMenuItem.submenu[0] = getAboutMenuItem();
return {...appMenuItem, id: MenuItemId.app};
};
// eslint-disable-next-line unicorn/prevent-abbreviations
export const defaultApplicationMenu = (): MenuOptions => [
getAppMenuItem(),
{
role: 'fileMenu',
label: t('File'),
id: MenuItemId.file,
submenu: [
getOpenFileMenuItem(),
{
type: 'separator'
},
{
role: 'close'
}
]
},
{
role: 'editMenu',
label: t('Edit'),
id: MenuItemId.edit
},
{
role: 'windowMenu',
label: t('Window'),
id: MenuItemId.window,
submenu: [
{
role: 'minimize'
},
{
role: 'zoom'
},
{
type: 'separator'
},
getExportHistoryMenuItem(),
{
type: 'separator'
},
{
role: 'front'
}
]
},
{
id: MenuItemId.help,
label: t('Help'),
role: 'help',
submenu: [getSendFeedbackMenuItem()]
}
];
// eslint-disable-next-line unicorn/prevent-abbreviations
export const customApplicationMenu = (modifier: (defaultMenu: ReturnType<typeof defaultApplicationMenu>) => void) => {
const menu = defaultApplicationMenu();
modifier(menu);
return menu;
};
export type MenuModifier = Parameters<typeof customApplicationMenu>[0];