diff options
| author | Adam <[email protected]> | 2025-11-03 06:50:38 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-11-03 08:29:13 -0600 |
| commit | 7a32fec008fdfb5bc034ba3ce1bca365c1d342f5 (patch) | |
| tree | a9d377796a187df98118d18e7c71fd78eab47a85 /packages/desktop/src/pages | |
| parent | 37a6b5177e793d8ea446f75cc691d4dffc3b39fd (diff) | |
| download | opencode-7a32fec008fdfb5bc034ba3ce1bca365c1d342f5.tar.gz opencode-7a32fec008fdfb5bc034ba3ce1bca365c1d342f5.zip | |
wip: desktop work
Diffstat (limited to 'packages/desktop/src/pages')
| -rw-r--r-- | packages/desktop/src/pages/index.tsx | 78 |
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> |
