支持在会话消息中打开里面的链接和本地文件

This commit is contained in:
xintaofei
2026-03-10 13:40:06 +08:00
parent 5564fdd39f
commit 13667729b9
5 changed files with 392 additions and 22 deletions

View File

@@ -28,6 +28,7 @@ import {
import { Streamdown } from "streamdown"
import { Shimmer } from "./shimmer"
import { useStreamdownLinkSafety } from "./link-safety"
interface ReasoningContextValue {
isStreaming: boolean
@@ -214,20 +215,28 @@ export type ReasoningContentProps = ComponentProps<
const streamdownPlugins = { cjk, code, math, mermaid }
export const ReasoningContent = memo(
({ className, children, ...props }: ReasoningContentProps) => (
<CollapsibleContent
className={cn(
"mt-4 text-sm",
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
className
)}
{...props}
>
<Streamdown plugins={streamdownPlugins} {...props}>
{children}
</Streamdown>
</CollapsibleContent>
)
({ className, children, ...props }: ReasoningContentProps) => {
const linkSafety = useStreamdownLinkSafety()
return (
<CollapsibleContent
className={cn(
"mt-4 text-sm",
"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
className
)}
{...props}
>
<Streamdown
linkSafety={linkSafety}
plugins={streamdownPlugins}
{...props}
>
{children}
</Streamdown>
</CollapsibleContent>
)
}
)
Reasoning.displayName = "Reasoning"