summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-10-28 15:39:34 -0500
committerAdam <[email protected]>2025-10-28 15:39:41 -0500
commit46ad4567188906b0d8e2cf2a67d6add6ec333a61 (patch)
tree1e1af19a4e000292d13269d5b991853b74458dbb /packages
parent832ffd23032c11bc289b36b95399a2b25b9fa779 (diff)
downloadopencode-46ad4567188906b0d8e2cf2a67d6add6ec333a61.tar.gz
opencode-46ad4567188906b0d8e2cf2a67d6add6ec333a61.zip
wip: desktop work
Diffstat (limited to 'packages')
-rw-r--r--packages/desktop/src/components/assistant-message.tsx17
-rw-r--r--packages/ui/src/components/diff.tsx9
2 files changed, 21 insertions, 5 deletions
diff --git a/packages/desktop/src/components/assistant-message.tsx b/packages/desktop/src/components/assistant-message.tsx
index 224e3d390..90f6e70fe 100644
--- a/packages/desktop/src/components/assistant-message.tsx
+++ b/packages/desktop/src/components/assistant-message.tsx
@@ -2,7 +2,7 @@ import type { Part, AssistantMessage, ReasoningPart, TextPart, ToolPart } from "
import { children, Component, createMemo, For, Match, Show, Switch, type JSX } from "solid-js"
import { Dynamic } from "solid-js/web"
import { Markdown } from "./markdown"
-import { Checkbox, Collapsible, Icon, IconProps } from "@opencode-ai/ui"
+import { Checkbox, Collapsible, Diff, Icon, IconProps } from "@opencode-ai/ui"
import { getDirectory, getFilename } from "@/utils"
import type { Tool } from "opencode/tool/tool"
import type { ReadTool } from "opencode/tool/read"
@@ -357,12 +357,21 @@ ToolRegistry.register<typeof EditTool>({
<span class="text-text-strong">{getFilename(props.input.filePath ?? "")}</span>
</div>
</div>
- <div class="flex gap-4 items-center justify-end">{/* <DiffChanges diff={diff} /> */}</div>
+ <div class="flex gap-4 items-center justify-end">
+ <Show when={props.metadata.filediff}>
+ <DiffChanges diff={props.metadata.filediff} />
+ </Show>
+ </div>
</div>
}
>
- <Show when={false && props.output}>
- <div class="whitespace-pre">{props.output}</div>
+ <Show when={props.metadata.filediff}>
+ <div class="border-t border-border-weaker-base">
+ <Diff
+ before={{ name: getFilename(props.metadata.filediff.path), contents: props.metadata.filediff.before }}
+ after={{ name: getFilename(props.metadata.filediff.path), contents: props.metadata.filediff.after }}
+ />
+ </div>
</Show>
</BasicTool>
)
diff --git a/packages/ui/src/components/diff.tsx b/packages/ui/src/components/diff.tsx
index 88215bcb0..3eeab6d6f 100644
--- a/packages/ui/src/components/diff.tsx
+++ b/packages/ui/src/components/diff.tsx
@@ -24,7 +24,13 @@ export type DiffProps<T = {}> = Omit<DiffFileRendererOptions<T>, "themes"> & {
export function Diff<T>(props: DiffProps<T>) {
let container!: HTMLDivElement
- const [local, others] = splitProps(props, ["before", "after", "class", "classList", "annotations"])
+ const [local, others] = splitProps(props, [
+ "before",
+ "after",
+ "class",
+ "classList",
+ "annotations",
+ ])
// const lineAnnotations: DiffLineAnnotation<ThreadMetadata>[] = [
// {
@@ -165,6 +171,7 @@ export function Diff<T>(props: DiffProps<T>) {
"--pjs-tab-size": 4,
"--pjs-font-features": "var(--font-family-mono--font-feature-settings)",
"--pjs-header-font-family": "var(--font-family-sans)",
+ "--pjs-gap-block": 0,
}}
ref={container}
/>