From 4e0f509e7b7d84395a541bdfa658f6c98f588221 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:03:02 -0600 Subject: feat(app): option to turn off sound effects --- packages/app/src/context/notification.tsx | 8 ++++++-- packages/app/src/context/settings.tsx | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'packages/app/src/context') diff --git a/packages/app/src/context/notification.tsx b/packages/app/src/context/notification.tsx index bf880d115..04bc2fdaa 100644 --- a/packages/app/src/context/notification.tsx +++ b/packages/app/src/context/notification.tsx @@ -233,7 +233,9 @@ export const { use: useNotification, provider: NotificationProvider } = createSi if (!session) return if (session.parentID) return - playSound(soundSrc(settings.sounds.agent())) + if (settings.sounds.agentEnabled()) { + playSound(soundSrc(settings.sounds.agent())) + } append({ directory, @@ -260,7 +262,9 @@ export const { use: useNotification, provider: NotificationProvider } = createSi if (meta.disposed) return if (session?.parentID) return - playSound(soundSrc(settings.sounds.errors())) + if (settings.sounds.errorsEnabled()) { + playSound(soundSrc(settings.sounds.errors())) + } const error = "error" in event.properties ? event.properties.error : undefined append({ diff --git a/packages/app/src/context/settings.tsx b/packages/app/src/context/settings.tsx index a8efb1eac..d72d4ceb1 100644 --- a/packages/app/src/context/settings.tsx +++ b/packages/app/src/context/settings.tsx @@ -10,8 +10,11 @@ export interface NotificationSettings { } export interface SoundSettings { + agentEnabled: boolean agent: string + permissionsEnabled: boolean permissions: string + errorsEnabled: boolean errors: string } @@ -57,8 +60,11 @@ const defaultSettings: Settings = { errors: false, }, sounds: { + agentEnabled: true, agent: "staplebops-01", + permissionsEnabled: true, permissions: "staplebops-02", + errorsEnabled: true, errors: "nope-03", }, } @@ -168,14 +174,29 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont }, }, sounds: { + agentEnabled: withFallback(() => store.sounds?.agentEnabled, defaultSettings.sounds.agentEnabled), + setAgentEnabled(value: boolean) { + setStore("sounds", "agentEnabled", value) + }, agent: withFallback(() => store.sounds?.agent, defaultSettings.sounds.agent), setAgent(value: string) { setStore("sounds", "agent", value) }, + permissionsEnabled: withFallback( + () => store.sounds?.permissionsEnabled, + defaultSettings.sounds.permissionsEnabled, + ), + setPermissionsEnabled(value: boolean) { + setStore("sounds", "permissionsEnabled", value) + }, permissions: withFallback(() => store.sounds?.permissions, defaultSettings.sounds.permissions), setPermissions(value: string) { setStore("sounds", "permissions", value) }, + errorsEnabled: withFallback(() => store.sounds?.errorsEnabled, defaultSettings.sounds.errorsEnabled), + setErrorsEnabled(value: boolean) { + setStore("sounds", "errorsEnabled", value) + }, errors: withFallback(() => store.sounds?.errors, defaultSettings.sounds.errors), setErrors(value: string) { setStore("sounds", "errors", value) -- cgit v1.2.3