-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
116 lines (101 loc) · 2.53 KB
/
main.js
File metadata and controls
116 lines (101 loc) · 2.53 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
const { app, BrowserWindow, shell, Menu } = require('electron');
const path = require('path');
const WEBSITE_URL = 'https://gitset.dev';
let mainWindow;
function createWindow() {
const isMac = process.platform === 'darwin';
const isWindows = process.platform === 'win32';
const isLinux = process.platform === 'linux';
const windowConfig = {
width: 1200,
height: 800,
resizable: true,
movable: true,
webPreferences: {
nodeIntegration: false,
contextIsolation: true
},
backgroundColor: '#ffffff',
show: false
};
if (isMac) {
windowConfig.titleBarStyle = 'default';
}
if (isWindows) {
windowConfig.icon = path.join(__dirname, 'build/icons/icon.ico');
} else if (isLinux) {
windowConfig.icon = path.join(__dirname, 'build/icons/512x512.png');
}
mainWindow = new BrowserWindow(windowConfig);
mainWindow.loadURL(WEBSITE_URL);
mainWindow.once('ready-to-show', () => {
mainWindow.show();
});
mainWindow.webContents.setWindowOpenHandler(({ url }) => {
if (url !== WEBSITE_URL && !url.startsWith(WEBSITE_URL + '/')) {
shell.openExternal(url);
return { action: 'deny' };
}
return { action: 'allow' };
});
const template = [];
if (isMac) {
template.unshift({
label: app.name,
submenu: [
{ role: 'about' },
{ type: 'separator' },
{ role: 'services' },
{ type: 'separator' },
{ role: 'hide' },
{ role: 'hideOthers' },
{ role: 'unhide' },
{ type: 'separator' },
{ role: 'quit' }
]
});
}
template.push(
{
label: 'File',
submenu: [
isMac ? { role: 'close' } : { role: 'quit' }
]
},
{
label: 'Edit',
submenu: [
{ role: 'undo' },
{ role: 'redo' },
{ type: 'separator' },
{ role: 'cut' },
{ role: 'copy' },
{ role: 'paste' }
]
},
{
label: 'View',
submenu: [
{ role: 'reload' },
{ role: 'toggleDevTools' },
{ type: 'separator' },
{ role: 'resetZoom' },
{ role: 'zoomIn' },
{ role: 'zoomOut' },
{ type: 'separator' },
{ role: 'togglefullscreen' }
]
}
);
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
}
app.whenReady().then(() => {
createWindow();
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit();
});