2026-05-25 22:26:14 +05:30
|
|
|
import { app, Menu, shell } from 'electron';
|
2026-05-25 21:44:31 +05:30
|
|
|
import { checkForUpdatesManually } from './auto-updater';
|
|
|
|
|
|
|
|
|
|
const checkForUpdatesItem: Electron.MenuItemConstructorOptions = {
|
|
|
|
|
label: 'Check for Updates...',
|
|
|
|
|
click: () => {
|
|
|
|
|
void checkForUpdatesManually();
|
|
|
|
|
},
|
|
|
|
|
};
|
2026-03-20 20:01:13 +02:00
|
|
|
|
2026-05-25 22:26:14 +05:30
|
|
|
const privacyPolicyItem: Electron.MenuItemConstructorOptions = {
|
|
|
|
|
label: 'Privacy Policy',
|
|
|
|
|
click: () => {
|
|
|
|
|
void shell.openExternal('https://www.surfsense.com/privacy');
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const termsOfServiceItem: Electron.MenuItemConstructorOptions = {
|
|
|
|
|
label: 'Terms of Service',
|
|
|
|
|
click: () => {
|
|
|
|
|
void shell.openExternal('https://www.surfsense.com/terms');
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-20 20:01:13 +02:00
|
|
|
export function setupMenu(): void {
|
|
|
|
|
const isMac = process.platform === 'darwin';
|
|
|
|
|
const template: Electron.MenuItemConstructorOptions[] = [
|
2026-05-25 21:44:31 +05:30
|
|
|
...(isMac
|
|
|
|
|
? [{
|
|
|
|
|
label: app.name,
|
|
|
|
|
submenu: [
|
|
|
|
|
{ role: 'about' as const },
|
|
|
|
|
checkForUpdatesItem,
|
|
|
|
|
{ type: 'separator' as const },
|
|
|
|
|
{ role: 'services' as const },
|
|
|
|
|
{ type: 'separator' as const },
|
|
|
|
|
{ role: 'hide' as const },
|
|
|
|
|
{ role: 'hideOthers' as const },
|
|
|
|
|
{ role: 'unhide' as const },
|
|
|
|
|
{ type: 'separator' as const },
|
|
|
|
|
{ role: 'quit' as const },
|
|
|
|
|
],
|
|
|
|
|
}]
|
|
|
|
|
: []),
|
2026-03-20 20:01:13 +02:00
|
|
|
{ role: 'fileMenu' as const },
|
|
|
|
|
{ role: 'editMenu' as const },
|
|
|
|
|
{ role: 'viewMenu' as const },
|
|
|
|
|
{ role: 'windowMenu' as const },
|
2026-05-25 22:26:14 +05:30
|
|
|
{
|
|
|
|
|
role: 'help' as const,
|
|
|
|
|
submenu: [
|
|
|
|
|
...(!isMac
|
|
|
|
|
? [
|
|
|
|
|
checkForUpdatesItem,
|
|
|
|
|
{ type: 'separator' as const },
|
|
|
|
|
]
|
|
|
|
|
: []),
|
|
|
|
|
privacyPolicyItem,
|
|
|
|
|
termsOfServiceItem,
|
|
|
|
|
],
|
|
|
|
|
},
|
2026-03-20 20:01:13 +02:00
|
|
|
];
|
|
|
|
|
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
|
|
|
|
|
}
|