diff options
| -rw-r--r-- | packages/ui/src/components/message-part.css | 17 | ||||
| -rw-r--r-- | packages/ui/src/components/message-part.tsx | 61 |
2 files changed, 65 insertions, 13 deletions
diff --git a/packages/ui/src/components/message-part.css b/packages/ui/src/components/message-part.css index e2d70e342..04255f7ea 100644 --- a/packages/ui/src/components/message-part.css +++ b/packages/ui/src/components/message-part.css @@ -228,6 +228,23 @@ border-top: 1px solid var(--border-weaker-base); } +[data-component="write-content"] { + border-top: 1px solid var(--border-weaker-base); + max-height: 240px; + overflow-y: auto; + + [data-component="code"] { + padding-bottom: 0px !important; + } + + /* Hide scrollbar */ + scrollbar-width: none; + -ms-overflow-style: none; + &::-webkit-scrollbar { + display: none; + } +} + [data-component="tool-action"] { width: 24px; height: 24px; diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 5ea3cd19c..07a3cfb51 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -19,6 +19,8 @@ import { Checkbox } from "./checkbox" import { DiffChanges } from "./diff-changes" import { Markdown } from "./markdown" import { getDirectory as _getDirectory, getFilename } from "@opencode-ai/util/path" +import { Code } from "./code" +import { checksum } from "@opencode-ai/util/encode" export interface MessageProps { message: MessageType @@ -301,8 +303,12 @@ ToolRegistry.register({ render(props) { return ( <BasicTool icon="bullet-list" trigger={{ title: "List", subtitle: getDirectory(props.input.path || "/") }}> - <Show when={false && props.output}> - <div data-component="tool-output">{props.output}</div> + <Show when={props.output}> + {(output) => ( + <div data-component="tool-output" data-scrollable> + <Markdown text={output()} /> + </div> + )} </Show> </BasicTool> ) @@ -321,8 +327,12 @@ ToolRegistry.register({ args: props.input.pattern ? ["pattern=" + props.input.pattern] : [], }} > - <Show when={false && props.output}> - <div data-component="tool-output">{props.output}</div> + <Show when={props.output}> + {(output) => ( + <div data-component="tool-output" data-scrollable> + <Markdown text={output()} /> + </div> + )} </Show> </BasicTool> ) @@ -344,8 +354,12 @@ ToolRegistry.register({ args, }} > - <Show when={false && props.output}> - <div data-component="tool-output">{props.output}</div> + <Show when={props.output}> + {(output) => ( + <div data-component="tool-output" data-scrollable> + <Markdown text={output()} /> + </div> + )} </Show> </BasicTool> ) @@ -369,8 +383,12 @@ ToolRegistry.register({ ), }} > - <Show when={false && props.output}> - <div data-component="tool-output">{props.output}</div> + <Show when={props.output}> + {(output) => ( + <div data-component="tool-output" data-scrollable> + <Markdown text={output()} /> + </div> + )} </Show> </BasicTool> ) @@ -384,12 +402,17 @@ ToolRegistry.register({ <BasicTool icon="task" trigger={{ - title: `${props.input.subagent_type || props.tool} Agent: ${props.input.description || ""}`, + title: `${props.input.subagent_type || props.tool} Agent`, titleClass: "capitalize", + subtitle: props.input.description, }} > - <Show when={false && props.output}> - <div data-component="tool-output">{props.output}</div> + <Show when={props.output}> + {(output) => ( + <div data-component="tool-output" data-scrollable> + <Markdown text={output()} /> + </div> + )} </Show> </BasicTool> ) @@ -467,6 +490,7 @@ ToolRegistry.register({ ToolRegistry.register({ name: "write", render(props) { + console.log(props) return ( <BasicTool icon="code-lines" @@ -485,8 +509,18 @@ ToolRegistry.register({ </div> } > - <Show when={false && props.output}> - <div data-component="tool-output">{props.output}</div> + <Show when={props.input.content}> + <div data-component="write-content"> + <Code + file={{ + name: props.input.filePath, + contents: props.input.content, + cacheKey: checksum(props.input.content), + }} + overflow="scroll" + class="pb-40" + /> + </div> </Show> </BasicTool> ) @@ -498,6 +532,7 @@ ToolRegistry.register({ render(props) { return ( <BasicTool + defaultOpen icon="checklist" trigger={{ title: "To-dos", |
