diff options
| author | Adam <[email protected]> | 2026-03-12 19:07:19 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-03-12 19:07:23 -0500 |
| commit | c173988aaa2f84ecdfe7d3c7cdfd7d3a525aee02 (patch) | |
| tree | 9d88817716a8344901ce19cb7e8ed0437dcb3de6 /packages/ui/src/components/session-turn.tsx | |
| parent | 268855dc5a770e9cd6718ea62b935afdea2dda7f (diff) | |
| download | opencode-c173988aaa2f84ecdfe7d3c7cdfd7d3a525aee02.tar.gz opencode-c173988aaa2f84ecdfe7d3c7cdfd7d3a525aee02.zip | |
feat(app): interruption state
Diffstat (limited to 'packages/ui/src/components/session-turn.tsx')
| -rw-r--r-- | packages/ui/src/components/session-turn.tsx | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx index 8783e8957..41e160d16 100644 --- a/packages/ui/src/components/session-turn.tsx +++ b/packages/ui/src/components/session-turn.tsx @@ -7,7 +7,7 @@ import { Binary } from "@opencode-ai/util/binary" import { getDirectory, getFilename } from "@opencode-ai/util/path" import { createEffect, createMemo, createSignal, For, on, ParentProps, Show } from "solid-js" import { Dynamic } from "solid-js/web" -import { AssistantParts, Message, Part, PART_MAPPING, type UserActions } from "./message-part" +import { AssistantParts, Message, MessageDivider, PART_MAPPING, type UserActions } from "./message-part" import { Card } from "./card" import { Accordion } from "./accordion" import { StickyAccordionHeader } from "./sticky-accordion-header" @@ -276,6 +276,11 @@ export function SessionTurn( ) const interrupted = createMemo(() => assistantMessages().some((m) => m.error?.name === "MessageAbortedError")) + const divider = createMemo(() => { + if (compaction()) return i18n.t("ui.messagePart.compaction") + if (interrupted()) return i18n.t("ui.message.interrupted") + return "" + }) const error = createMemo( () => assistantMessages().find((m) => m.error && m.error.name !== "MessageAbortedError")?.error, ) @@ -384,11 +389,11 @@ export function SessionTurn( class={props.classes?.container} > <div data-slot="session-turn-message-content" aria-live="off"> - <Message message={message()!} parts={parts()} actions={props.actions} interrupted={interrupted()} /> + <Message message={message()!} parts={parts()} actions={props.actions} /> </div> - <Show when={compaction()}> + <Show when={divider()}> <div data-slot="session-turn-compaction"> - <Part part={compaction()!} message={message()!} hideDetails /> + <MessageDivider label={divider()} /> </div> </Show> <Show when={assistantMessages().length > 0}> |
