summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-29 20:54:33 -0600
committerAdam <[email protected]>2025-12-30 04:57:35 -0600
commitfa1ac7bc957f3b8b13b97e85eac40729f16b510b (patch)
tree0e65db62401b8057019222a8d05f6b9de452bffb /packages/app/src/pages
parentc82ab649e2307237b480a94dbb7df6d77a8bf71a (diff)
downloadopencode-fa1ac7bc957f3b8b13b97e85eac40729f16b510b.tar.gz
opencode-fa1ac7bc957f3b8b13b97e85eac40729f16b510b.zip
feat(desktop): system notifications
Diffstat (limited to 'packages/app/src/pages')
-rw-r--r--packages/app/src/pages/layout.tsx20
1 files changed, 13 insertions, 7 deletions
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index 1c38f05bb..480c5eddf 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -161,27 +161,33 @@ export default function Layout(props: ParentProps) {
if (e.details?.type !== "permission.updated") return
const directory = e.name
const permission = e.details.properties
- const sessionKey = `${directory}:${permission.sessionID}`
- if (seenSessions.has(sessionKey)) return
- seenSessions.add(sessionKey)
const currentDir = params.dir ? base64Decode(params.dir) : undefined
const currentSession = params.id
- if (directory === currentDir && permission.sessionID === currentSession) return
const [store] = globalSync.child(directory)
const session = store.session.find((s) => s.id === permission.sessionID)
- if (directory === currentDir && session?.parentID === currentSession) return
const sessionTitle = session?.title ?? "New session"
const projectName = getFilename(directory)
+ const description = `${sessionTitle} in ${projectName} needs permission`
+ const href = `/${base64Encode(directory)}/session/${permission.sessionID}`
+ void platform.notify("Permission required", description, href)
+
+ if (directory === currentDir && permission.sessionID === currentSession) return
+ if (directory === currentDir && session?.parentID === currentSession) return
+
+ const sessionKey = `${directory}:${permission.sessionID}`
+ if (seenSessions.has(sessionKey)) return
+ seenSessions.add(sessionKey)
+
const toastId = showToast({
persistent: true,
icon: "checklist",
title: "Permission required",
- description: `${sessionTitle} in ${projectName} needs permission`,
+ description,
actions: [
{
label: "Go to session",
onClick: () => {
- navigate(`/${base64Encode(directory)}/session/${permission.sessionID}`)
+ navigate(href)
},
},
{