From ff690350b1ac5ec4f415d9d3eabaeb839196fa1c Mon Sep 17 00:00:00 2001
From: Adam <2363879+adamdotdevin@users.noreply.github.com>
Date: Tue, 16 Dec 2025 10:49:22 -0600
Subject: feat(desktop): show write tool output
---
packages/ui/src/components/message-part.tsx | 31 ++++++++++++++++-------------
packages/ui/src/context/code.tsx | 10 ++++++++++
packages/ui/src/context/diff.tsx | 19 ++++++++----------
3 files changed, 35 insertions(+), 25 deletions(-)
create mode 100644 packages/ui/src/context/code.tsx
(limited to 'packages/ui/src')
diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx
index 33b519ea4..b838bebc2 100644
--- a/packages/ui/src/components/message-part.tsx
+++ b/packages/ui/src/components/message-part.tsx
@@ -11,6 +11,7 @@ import {
} from "@opencode-ai/sdk/v2"
import { useData } from "../context"
import { useDiffComponent } from "../context/diff"
+import { useCodeComponent } from "../context/code"
import { BasicTool } from "./basic-tool"
import { GenericTool } from "./basic-tool"
import { Card } from "./card"
@@ -19,6 +20,7 @@ import { Checkbox } from "./checkbox"
import { DiffChanges } from "./diff-changes"
import { Markdown } from "./markdown"
import { getDirectory as _getDirectory, getFilename } from "@opencode-ai/util/path"
+import { checksum } from "@opencode-ai/util/encode"
export interface MessageProps {
message: MessageType
@@ -488,9 +490,10 @@ ToolRegistry.register({
ToolRegistry.register({
name: "write",
render(props) {
- console.log(props)
+ const codeComponent = useCodeComponent()
return (
@@ -507,19 +510,19 @@ ToolRegistry.register({
}
>
- {/* */}
- {/* */}
- {/* */}
- {/*
*/}
- {/* */}
+
+
+
+
+
)
},
diff --git a/packages/ui/src/context/code.tsx b/packages/ui/src/context/code.tsx
new file mode 100644
index 000000000..3a2511527
--- /dev/null
+++ b/packages/ui/src/context/code.tsx
@@ -0,0 +1,10 @@
+import type { ValidComponent } from "solid-js"
+import { createSimpleContext } from "./helper"
+
+const ctx = createSimpleContext({
+ name: "CodeComponent",
+ init: (props) => props.component,
+})
+
+export const CodeComponentProvider = ctx.provider
+export const useCodeComponent = ctx.use
diff --git a/packages/ui/src/context/diff.tsx b/packages/ui/src/context/diff.tsx
index 630437de6..747de9cc8 100644
--- a/packages/ui/src/context/diff.tsx
+++ b/packages/ui/src/context/diff.tsx
@@ -1,13 +1,10 @@
-import { createContext, useContext, type ParentProps, type ValidComponent } from "solid-js"
+import type { ValidComponent } from "solid-js"
+import { createSimpleContext } from "./helper"
-const DiffComponentContext = createContext()
+const ctx = createSimpleContext({
+ name: "DiffComponent",
+ init: (props) => props.component,
+})
-export function DiffComponentProvider(props: ParentProps<{ component: ValidComponent }>) {
- return {props.children}
-}
-
-export function useDiffComponent() {
- const component = useContext(DiffComponentContext)
- if (!component) throw new Error("DiffComponentProvider must be used to provide a diff component")
- return component
-}
+export const DiffComponentProvider = ctx.provider
+export const useDiffComponent = ctx.use
--
cgit v1.2.3