summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-02 07:08:18 -0600
committerAdam <[email protected]>2025-12-02 07:08:25 -0600
commit67ab9dc4d049d6a1090cee9b51913e0c440a875f (patch)
tree479f685cc697795fd5c63937e2e5d4a4319703b2
parent77494cb7df511964cf20be61461e5d69a372d316 (diff)
downloadopencode-67ab9dc4d049d6a1090cee9b51913e0c440a875f.tar.gz
opencode-67ab9dc4d049d6a1090cee9b51913e0c440a875f.zip
fix: share page ssr
-rw-r--r--packages/ui/src/components/message-progress.tsx29
-rw-r--r--packages/ui/src/components/session-turn.tsx6
2 files changed, 30 insertions, 5 deletions
diff --git a/packages/ui/src/components/message-progress.tsx b/packages/ui/src/components/message-progress.tsx
index 7717e5e76..afd7f754a 100644
--- a/packages/ui/src/components/message-progress.tsx
+++ b/packages/ui/src/components/message-progress.tsx
@@ -1,11 +1,27 @@
-import { For, JSXElement, Match, Show, Switch, createEffect, createMemo, createSignal, onCleanup } from "solid-js"
+import {
+ For,
+ JSXElement,
+ Match,
+ Show,
+ Switch,
+ ValidComponent,
+ createEffect,
+ createMemo,
+ createSignal,
+ onCleanup,
+} from "solid-js"
import { Part } from "./message-part"
import { Spinner } from "./spinner"
import { useData } from "../context/data"
import type { AssistantMessage as AssistantMessageType, ToolPart } from "@opencode-ai/sdk"
-import { Diff } from "./diff"
-export function MessageProgress(props: { assistantMessages: () => AssistantMessageType[]; done?: boolean }) {
+export interface MessageProgressProps {
+ assistantMessages: () => AssistantMessageType[]
+ diffComponent: ValidComponent
+ done?: boolean
+}
+
+export function MessageProgress(props: MessageProgressProps) {
const data = useData()
const sanitizer = createMemo(() => (data.directory ? new RegExp(`${data.directory}/`, "g") : undefined))
const parts = createMemo(() => props.assistantMessages().flatMap((m) => data.store.part[m.id]))
@@ -156,7 +172,12 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa
)
return (
<div data-slot="message-progress-item">
- <Part message={message()!} part={part} sanitize={sanitizer()} diffComponent={Diff} />
+ <Part
+ message={message()!}
+ part={part}
+ sanitize={sanitizer()}
+ diffComponent={props.diffComponent}
+ />
</div>
)
}}
diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx
index 2dc83a9a7..963713a22 100644
--- a/packages/ui/src/components/session-turn.tsx
+++ b/packages/ui/src/components/session-turn.tsx
@@ -206,7 +206,11 @@ export function SessionTurn(
<div data-slot="session-turn-response-section">
<Switch>
<Match when={!completed()}>
- <MessageProgress assistantMessages={assistantMessages} done={!messageWorking()} />
+ <MessageProgress
+ assistantMessages={assistantMessages}
+ done={!messageWorking()}
+ diffComponent={props.diffComponent}
+ />
</Match>
<Match when={completed() && hasToolPart()}>
<Collapsible variant="ghost" open={detailsExpanded()} onOpenChange={setDetailsExpanded}>