summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-15 05:54:44 -0600
committerAdam <[email protected]>2025-12-15 10:20:18 -0600
commitc0d009d5f33c368f61ebe9a87460b1fbf5801d33 (patch)
treedb461e82ee31e0d89200b987aed8984f1d874c56
parentc36f3b9dbe5547576545a77679b8898c205a0c30 (diff)
downloadopencode-c0d009d5f33c368f61ebe9a87460b1fbf5801d33.tar.gz
opencode-c0d009d5f33c368f61ebe9a87460b1fbf5801d33.zip
wip(desktop): progress
-rw-r--r--packages/desktop/src/context/notification.tsx2
-rw-r--r--packages/desktop/src/pages/layout.tsx9
2 files changed, 10 insertions, 1 deletions
diff --git a/packages/desktop/src/context/notification.tsx b/packages/desktop/src/context/notification.tsx
index c18b12796..705551944 100644
--- a/packages/desktop/src/context/notification.tsx
+++ b/packages/desktop/src/context/notification.tsx
@@ -5,7 +5,7 @@ import { useGlobalSDK } from "./global-sdk"
import { EventSessionError } from "@opencode-ai/sdk/v2"
import { makeAudioPlayer } from "@solid-primitives/audio"
import idleSound from "@opencode-ai/ui/audio/staplebops-01.aac"
-import errorSound from "@opencode-ai/ui/audio/error-3.aac"
+import errorSound from "@opencode-ai/ui/audio/nope-03.aac"
type NotificationBase = {
directory?: string
diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx
index 08d24dc6f..df162c187 100644
--- a/packages/desktop/src/pages/layout.tsx
+++ b/packages/desktop/src/pages/layout.tsx
@@ -12,6 +12,7 @@ import { IconButton } from "@opencode-ai/ui/icon-button"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { Collapsible } from "@opencode-ai/ui/collapsible"
import { DiffChanges } from "@opencode-ai/ui/diff-changes"
+import { Spinner } from "@opencode-ai/ui/spinner"
import { getFilename } from "@opencode-ai/util/path"
import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
import { Session, Project } from "@opencode-ai/sdk/v2/client"
@@ -287,6 +288,11 @@ export default function Layout(props: ParentProps) {
const updated = createMemo(() => DateTime.fromMillis(session.time.updated))
const notifications = createMemo(() => notification.session.unseen(session.id))
const hasError = createMemo(() => notifications().some((n) => n.type === "error"))
+ const isWorking = createMemo(
+ () =>
+ session.id !== params.id &&
+ globalSync.child(props.project.worktree)[0].session_status[session.id]?.type === "busy",
+ )
async function archive(session: Session) {
await globalSDK.client.session.update({
directory: session.directory,
@@ -319,6 +325,9 @@ export default function Layout(props: ParentProps) {
</span>
<div class="shrink-0 group-hover/session:hidden group-active/session:hidden group-focus-within/session:hidden">
<Switch>
+ <Match when={isWorking()}>
+ <Spinner class="size-2.5 mr-0.5" />
+ </Match>
<Match when={hasError()}>
<div class="size-1.5 mr-1.5 rounded-full bg-text-diff-delete-base" />
</Match>