feat(auto-updater, menu): enhance update management and add menu options for updates and policies

This commit is contained in:
Anish Sarkar 2026-05-25 21:44:31 +05:30
parent 96da8498e6
commit 26fe4d7493
4 changed files with 146 additions and 13 deletions

View file

@ -1,13 +1,45 @@
import { Menu } from 'electron';
import { app, Menu } from 'electron';
import { checkForUpdatesManually } from './auto-updater';
const checkForUpdatesItem: Electron.MenuItemConstructorOptions = {
label: 'Check for Updates...',
click: () => {
void checkForUpdatesManually();
},
};
export function setupMenu(): void {
const isMac = process.platform === 'darwin';
const template: Electron.MenuItemConstructorOptions[] = [
...(isMac ? [{ role: 'appMenu' as const }] : []),
...(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 },
],
}]
: []),
{ role: 'fileMenu' as const },
{ role: 'editMenu' as const },
{ role: 'viewMenu' as const },
{ role: 'windowMenu' as const },
...(!isMac
? [{
role: 'help' as const,
submenu: [
checkForUpdatesItem,
],
}]
: []),
];
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
}