Render user messages without markdown formatting
This commit is contained in:
@@ -18,6 +18,27 @@ export default function MessagePart(props: MessagePartProps) {
|
|||||||
const isAssistantMessage = () => props.messageType === "assistant"
|
const isAssistantMessage = () => props.messageType === "assistant"
|
||||||
const textContainerClass = () => (isAssistantMessage() ? "message-text message-text-assistant" : "message-text")
|
const textContainerClass = () => (isAssistantMessage() ? "message-text message-text-assistant" : "message-text")
|
||||||
|
|
||||||
|
const plainTextContent = () => {
|
||||||
|
const part = props.part
|
||||||
|
|
||||||
|
if (typeof part?.text === "string") {
|
||||||
|
return part.text
|
||||||
|
}
|
||||||
|
|
||||||
|
const segments: string[] = []
|
||||||
|
const contentArray = Array.isArray(part?.content) ? part.content : []
|
||||||
|
|
||||||
|
for (const item of contentArray) {
|
||||||
|
if (typeof item === "string") {
|
||||||
|
segments.push(item)
|
||||||
|
} else if (item && typeof item === "object" && typeof (item as { text?: unknown }).text === "string") {
|
||||||
|
segments.push((item as { text: string }).text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return segments.join("\n")
|
||||||
|
}
|
||||||
|
|
||||||
function handleReasoningClick(e: Event) {
|
function handleReasoningClick(e: Event) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
toggleItemExpanded(reasoningId())
|
toggleItemExpanded(reasoningId())
|
||||||
@@ -28,7 +49,12 @@ export default function MessagePart(props: MessagePartProps) {
|
|||||||
<Match when={partType() === "text"}>
|
<Match when={partType() === "text"}>
|
||||||
<Show when={!props.part.synthetic && partHasRenderableText(props.part)}>
|
<Show when={!props.part.synthetic && partHasRenderableText(props.part)}>
|
||||||
<div class={textContainerClass()}>
|
<div class={textContainerClass()}>
|
||||||
<Markdown part={props.part} isDark={isDark()} size={isAssistantMessage() ? "tight" : "base"} />
|
<Show
|
||||||
|
when={isAssistantMessage()}
|
||||||
|
fallback={<span>{plainTextContent()}</span>}
|
||||||
|
>
|
||||||
|
<Markdown part={props.part} isDark={isDark()} size={isAssistantMessage() ? "tight" : "base"} />
|
||||||
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
</Match>
|
</Match>
|
||||||
|
|||||||
Reference in New Issue
Block a user