diff options
| author | Adam <[email protected]> | 2025-12-29 20:54:33 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-30 04:57:35 -0600 |
| commit | fa1ac7bc957f3b8b13b97e85eac40729f16b510b (patch) | |
| tree | 0e65db62401b8057019222a8d05f6b9de452bffb /packages/app/src/pages | |
| parent | c82ab649e2307237b480a94dbb7df6d77a8bf71a (diff) | |
| download | opencode-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.tsx | 20 |
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) }, }, { |
