summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-06 16:03:39 -0600
committerAdam <[email protected]>2026-01-20 07:33:44 -0600
commitde3641e8ebfd6d6d0262289136e970b1ddea54b2 (patch)
treeb351a43a08e24c57bec5ddcdc2e851853759a761 /packages/app/src/pages
parent8bcbfd63960120efa3cb770f8e07de1bb57e93b0 (diff)
downloadopencode-de3641e8ebfd6d6d0262289136e970b1ddea54b2.tar.gz
opencode-de3641e8ebfd6d6d0262289136e970b1ddea54b2.zip
wip(app): settings
Diffstat (limited to 'packages/app/src/pages')
-rw-r--r--packages/app/src/pages/layout.tsx16
1 files changed, 15 insertions, 1 deletions
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index 8c04f10db..f4e202b6e 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -37,6 +37,7 @@ import { Dialog } from "@opencode-ai/ui/dialog"
import { getFilename } from "@opencode-ai/util/path"
import { Session, type Message, type TextPart } from "@opencode-ai/sdk/v2/client"
import { usePlatform } from "@/context/platform"
+import { useSettings } from "@/context/settings"
import { createStore, produce, reconcile } from "solid-js/store"
import {
DragDropProvider,
@@ -54,6 +55,7 @@ import { useNotification } from "@/context/notification"
import { usePermission } from "@/context/permission"
import { Binary } from "@opencode-ai/util/binary"
import { retry } from "@opencode-ai/util/retry"
+import { playSound, soundSrc } from "@/utils/sound"
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { useTheme, type ColorScheme } from "@opencode-ai/ui/theme"
@@ -98,6 +100,7 @@ export default function Layout(props: ParentProps) {
const layout = useLayout()
const layoutReady = createMemo(() => layout.ready())
const platform = usePlatform()
+ const settings = useSettings()
const server = useServer()
const notification = useNotification()
const permission = usePermission()
@@ -329,7 +332,18 @@ export default function Layout(props: ParentProps) {
if (now - lastAlerted < cooldownMs) return
alertedAtBySession.set(sessionKey, now)
- void platform.notify(config.title, description, href)
+ if (e.details.type === "permission.asked") {
+ playSound(soundSrc(settings.sounds.permissions()))
+ if (settings.notifications.permissions()) {
+ void platform.notify(config.title, description, href)
+ }
+ }
+
+ if (e.details.type === "question.asked") {
+ if (settings.notifications.agent()) {
+ void platform.notify(config.title, description, href)
+ }
+ }
const currentDir = params.dir ? base64Decode(params.dir) : undefined
const currentSession = params.id