summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/pages
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-11-03 06:50:38 -0600
committerAdam <[email protected]>2025-11-03 08:29:13 -0600
commit7a32fec008fdfb5bc034ba3ce1bca365c1d342f5 (patch)
treea9d377796a187df98118d18e7c71fd78eab47a85 /packages/desktop/src/pages
parent37a6b5177e793d8ea446f75cc691d4dffc3b39fd (diff)
downloadopencode-7a32fec008fdfb5bc034ba3ce1bca365c1d342f5.tar.gz
opencode-7a32fec008fdfb5bc034ba3ce1bca365c1d342f5.zip
wip: desktop work
Diffstat (limited to 'packages/desktop/src/pages')
-rw-r--r--packages/desktop/src/pages/index.tsx78
1 files changed, 3 insertions, 75 deletions
diff --git a/packages/desktop/src/pages/index.tsx b/packages/desktop/src/pages/index.tsx
index badd0009d..eebfc4362 100644
--- a/packages/desktop/src/pages/index.tsx
+++ b/packages/desktop/src/pages/index.tsx
@@ -548,77 +548,6 @@ export default function Page() {
{(message) => {
const diffs = createMemo(() => message.summary?.diffs ?? [])
const working = createMemo(() => !message.summary?.body)
- const assistantMessages = createMemo(() => {
- return sync.data.message[activeSession().id]?.filter(
- (m) => m.role === "assistant" && m.parentID == message.id,
- ) as AssistantMessageType[]
- })
- const parts = createMemo(() =>
- assistantMessages().flatMap((m) => sync.data.part[m.id]),
- )
- const lastPart = createMemo(() => parts().slice(-1)?.at(0))
- const rawStatus = createMemo(() => {
- const defaultStatus = "Working..."
- const last = lastPart()
- if (!last) return defaultStatus
-
- if (last.type === "tool") {
- switch (last.tool) {
- case "task":
- return "Delegating work..."
- case "todowrite":
- case "todoread":
- return "Planning next steps..."
- case "read":
- return "Gathering context..."
- case "list":
- case "grep":
- case "glob":
- return "Searching the codebase..."
- case "webfetch":
- return "Searching the web..."
- case "edit":
- case "write":
- return "Making edits..."
- case "bash":
- return "Running commands..."
- default:
- break
- }
- } else if (last.type === "reasoning") {
- return "Thinking..."
- } else if (last.type === "text") {
- return "Gathering thoughts..."
- }
- return defaultStatus
- })
-
- const [status, setStatus] = createSignal(rawStatus())
- let lastStatusChange = Date.now()
- let statusTimeout: number | undefined
-
- createEffect(() => {
- const newStatus = rawStatus()
- if (newStatus === status()) return
-
- const timeSinceLastChange = Date.now() - lastStatusChange
-
- if (timeSinceLastChange >= 1000) {
- setStatus(newStatus)
- lastStatusChange = Date.now()
- if (statusTimeout) {
- clearTimeout(statusTimeout)
- statusTimeout = undefined
- }
- } else {
- if (statusTimeout) clearTimeout(statusTimeout)
- statusTimeout = setTimeout(() => {
- setStatus(rawStatus())
- lastStatusChange = Date.now()
- statusTimeout = undefined
- }, 1000 - timeSinceLastChange) as unknown as number
- }
- })
return (
<li class="group/li flex items-center self-stretch">
@@ -641,10 +570,9 @@ export default function Page() {
"text-text-weak data-[active=true]:text-text-strong group-hover/li:text-text-base": true,
}}
>
- <Switch>
- <Match when={working()}>{status()}</Match>
- <Match when={true}>{message.summary?.title}</Match>
- </Switch>
+ <Show when={message.summary?.title} fallback="New message">
+ {message.summary?.title}
+ </Show>
</div>
</button>
</li>