From 74fff647792e04749415e9b2f2fa281a0b7df384 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Mon, 25 May 2026 22:26:14 +0530 Subject: [PATCH] feat(menu): add Privacy Policy and Terms of Service options to the application menu --- surfsense_desktop/src/modules/menu.ts | 37 ++++++++++++++----- .../components/AgentPermissionsContent.tsx | 4 +- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/surfsense_desktop/src/modules/menu.ts b/surfsense_desktop/src/modules/menu.ts index 067a6e461..40e19398c 100644 --- a/surfsense_desktop/src/modules/menu.ts +++ b/surfsense_desktop/src/modules/menu.ts @@ -1,4 +1,4 @@ -import { app, Menu } from 'electron'; +import { app, Menu, shell } from 'electron'; import { checkForUpdatesManually } from './auto-updater'; const checkForUpdatesItem: Electron.MenuItemConstructorOptions = { @@ -8,6 +8,20 @@ const checkForUpdatesItem: Electron.MenuItemConstructorOptions = { }, }; +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'); + }, +}; + export function setupMenu(): void { const isMac = process.platform === 'darwin'; const template: Electron.MenuItemConstructorOptions[] = [ @@ -32,14 +46,19 @@ export function setupMenu(): void { { role: 'editMenu' as const }, { role: 'viewMenu' as const }, { role: 'windowMenu' as const }, - ...(!isMac - ? [{ - role: 'help' as const, - submenu: [ - checkForUpdatesItem, - ], - }] - : []), + { + role: 'help' as const, + submenu: [ + ...(!isMac + ? [ + checkForUpdatesItem, + { type: 'separator' as const }, + ] + : []), + privacyPolicyItem, + termsOfServiceItem, + ], + }, ]; Menu.setApplicationMenu(Menu.buildFromTemplate(template)); } diff --git a/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/AgentPermissionsContent.tsx b/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/AgentPermissionsContent.tsx index 5af94f7e3..5919abcd6 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/AgentPermissionsContent.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/AgentPermissionsContent.tsx @@ -474,8 +474,10 @@ export function AgentPermissionsContent() { handleConfirmDelete(); }} disabled={deleteMutation.isPending} + className="relative min-w-[88px]" > - {deleteMutation.isPending ? "Deleting…" : "Delete"} + Delete + {deleteMutation.isPending && }