diff options
| author | Adam <[email protected]> | 2025-10-24 11:23:32 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-10-24 12:16:33 -0500 |
| commit | 86447b576490ee4cde0825418015652d8ed26794 (patch) | |
| tree | 02f0a7780eb7c96d1fa7a801088743a29e265a9d /packages/desktop/src/pages | |
| parent | fe8f6d7a3eef34e932bd43d244460d417865de88 (diff) | |
| download | opencode-86447b576490ee4cde0825418015652d8ed26794.tar.gz opencode-86447b576490ee4cde0825418015652d8ed26794.zip | |
wip: desktop work
Diffstat (limited to 'packages/desktop/src/pages')
| -rw-r--r-- | packages/desktop/src/pages/index.tsx | 69 |
1 files changed, 50 insertions, 19 deletions
diff --git a/packages/desktop/src/pages/index.tsx b/packages/desktop/src/pages/index.tsx index f6ea4cb90..f61e36549 100644 --- a/packages/desktop/src/pages/index.tsx +++ b/packages/desktop/src/pages/index.tsx @@ -1,4 +1,4 @@ -import { Button, List, SelectDialog, Tooltip, IconButton, Tabs, Icon } from "@opencode-ai/ui" +import { Button, List, SelectDialog, Tooltip, IconButton, Tabs, Icon, Accordion } from "@opencode-ai/ui" import { FileIcon } from "@/ui" import FileTree from "@/components/file-tree" import { For, onCleanup, onMount, Show, Match, Switch, createSignal, createEffect, createMemo } from "solid-js" @@ -55,7 +55,6 @@ export default function Page() { const handleKeyDown = (event: KeyboardEvent) => { if (event.getModifierState(MOD) && event.shiftKey && event.key.toLowerCase() === "p") { event.preventDefault() - // TODO: command palette return } if (event.getModifierState(MOD) && event.key.toLowerCase() === "p") { @@ -571,7 +570,6 @@ export default function Page() { <div class="flex flex-col items-start gap-50 pb-[800px]"> <For each={local.session.userMessages()}> {(message) => { - console.log(message) return ( <div data-message={message.id} @@ -583,22 +581,55 @@ export default function Page() { </div> <div class="text-14-regular text-text-base">{message.summary?.text}</div> </div> - <div class=""> - <For each={message.summary?.diffs}> - {(diff) => ( - <Diff - before={{ - name: diff.file!, - contents: diff.before!, - }} - after={{ - name: diff.file!, - contents: diff.after!, - }} - /> - )} - </For> - </div> + <Show when={message.summary?.diffs.length}> + <Accordion class="w-full" multiple> + <For each={message.summary?.diffs || []}> + {(diff) => ( + <Accordion.Item value={diff.file}> + <Accordion.Header> + <Accordion.Trigger> + <div class="flex items-center justify-between w-full"> + <div class="flex items-center gap-5"> + <FileIcon + node={{ path: diff.file, type: "file" }} + class="shrink-0 size-4" + /> + <div class="flex"> + <Show when={diff.file.includes("/")}> + <span class="text-text-base"> + {getDirectory(diff.file)}/ + </span> + </Show> + <span class="text-text-strong">{getFilename(diff.file)}</span> + </div> + </div> + <div class="flex gap-4 items-center justify-end"> + <div class="flex gap-2 justify-end items-center"> + <span class="text-12-mono text-right text-text-diff-add-base">{`+${diff.additions}`}</span> + <span class="text-12-mono text-right text-text-diff-delete-base">{`-${diff.deletions}`}</span> + </div> + <Icon name="chevron-grabber-vertical" size="small" /> + </div> + </div> + </Accordion.Trigger> + </Accordion.Header> + <Accordion.Content> + <Diff + before={{ + name: diff.file!, + contents: diff.before!, + }} + after={{ + name: diff.file!, + contents: diff.after!, + }} + /> + </Accordion.Content> + </Accordion.Item> + )} + </For> + </Accordion> + </Show> </div> ) }} |
