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 && }