|
@@ -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 { Part } from "./message-part"
|
|
|
import { Spinner } from "./spinner"
|
|
import { Spinner } from "./spinner"
|
|
|
import { useData } from "../context/data"
|
|
import { useData } from "../context/data"
|
|
|
import type { AssistantMessage as AssistantMessageType, ToolPart } from "@opencode-ai/sdk"
|
|
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 data = useData()
|
|
|
const sanitizer = createMemo(() => (data.directory ? new RegExp(`${data.directory}/`, "g") : undefined))
|
|
const sanitizer = createMemo(() => (data.directory ? new RegExp(`${data.directory}/`, "g") : undefined))
|
|
|
const parts = createMemo(() => props.assistantMessages().flatMap((m) => data.store.part[m.id]))
|
|
const parts = createMemo(() => props.assistantMessages().flatMap((m) => data.store.part[m.id]))
|
|
@@ -156,7 +172,12 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa
|
|
|
)
|
|
)
|
|
|
return (
|
|
return (
|
|
|
<div data-slot="message-progress-item">
|
|
<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>
|
|
</div>
|
|
|
)
|
|
)
|
|
|
}}
|
|
}}
|