AI 组件 · Sidebar
侧边信息栏
展示 AI 场景下的配置和详情信息

使用场景

侧边信息栏主要用于在 AI 场景下,用于信息展示,功能配置。包括 MCP 配置、参考来源、代码预览、富文本预览及编辑等功能

代码演示

基础容器

侧边信息栏的基础容器,基础容器是MCP 配置、参考来源、以及侧边消息栏的基础容器。
  • visible 配置 onCancel 使用控制显示和隐藏
  • title设置标题
  • motion设置是否有展开动画
  • resizable设置宽度是否可伸缩,为 true 时候可通过 minSize,maxSize 设置最小,最大宽度

MCP 配置

使用 MCPConfigure 进行 MCP 工具的展示、启用/关闭、配置及搜索
  • 通过 options 和 customOptions 设置内置的 MCP 工具和自定义 MCP 工具
  • 通过 visible 设置组件的显示和隐藏, 使用 onCancel 监听用户的关闭行为
  • 使用 onStatusChange 自定义处理 MCP 工具的启用/关闭
  • 使用 onAddClick 处理自定义 MCP 页的点击添加按钮后的操作
  • 可通过 onConfigureClick 监听内置 MCP 工具的配置,通过 onEditClick 监听自定义 MCP 工具的配置
其他 MCPConfigure 的 API 见 MCPConfigureProps
传入 MCP 工具项的类型如下
用例如下:

参考来源

使用 Annotation 组件可以管理参考来源的展示
  • activeKey配合 onChange 管理当前展开的项
  • info 设置参考来源的具体内容

代码展示

可通过 Sidebar 中的 CodeItem 展示代码,CodeItem 基于 JsonViewer 以及 CodeHighlight 实现。
  • content: 内容字符串
  • isJson: 是否为 json
  • language: 编程语言名称,同 CodeHighlight 的 language
  • JsonViewerProps: 配置其他 JsonViewer 参数
  • CodeHighlightProps: 配置其他 CodeHighlight 参数

代码列表

用户可通过 Sidebar 中的 CodeContent 组件展示代码列表信息。

富文本编辑器

可通过 Sidebar 中的 FileItem 查看、编辑富文本内容, FileItem 基于 tiptap 实现。
  • content:富文本内容, 支持类型同 TiptapContent
  • editable: 设置是否可编辑
  • imgUploadProps: 设置图片上传路径以及图片上传后 src 的设置,通过 action 设置上传地址,通过 getUploadImageSrc 函数返回图片上传后地址,用于富文本中 img 节点的 src

富文本列表

用户可通过 Sidebar 中的 FileContent 组件展示富文本列表信息。

侧边信息栏

侧边信息栏 Sidebar 有主视图(mode 为 main)和详情视图(mode 为 code、text 及其他)。
主视图可以通过 title 配置标题,通过 showClose 决定是否展示关闭按钮,通过 options 设置顶部的按钮组。
对于主视图的内容渲染,可通过 renderMainContent 传入渲染函数。可使用 Annotation 中的 AnnotationContent 渲染参考来源,使用 Sidebar 中内置的 FileContent 渲染富文本, CodeContent 渲染代码。
对于详情视图,如果是富文本或者代码,分别设置 mode 为 code、text,通过 detailContent 设置显示内容,即可通过内置的代码显示组件, 富文本编辑器进行显示,如果想要自定义详情视图的展示,则通过 renderDetailContent 自行处理渲染即可。

API 参考

Container

属性说明类型默认值
afterVisibleChange可见状态变化后的回调函数(isVisible: boolean) => void-
className自定义类名string-
containerRef容器元素的 Ref 引用React.RefObject<HTMLDivElement>-
defaultSize默认尺寸(宽度/高度), 仅在 resizable 为 true 时生效{ width?: number | string; height?: number | string }-
maxWidth最大宽度, 仅在 resizable 为 true 时生效string | number-
minWidth最小宽度, 仅在 resizable 为 true 时生效string | number-
motion是否开启动画效果booleantrue
onCancel取消操作的回调函数(e: any) => void-
renderHeader自定义头部渲染函数() => ReactNode-
resizable是否可拉伸booleantrue
showClose是否显示关闭按钮booleantrue
style自定义内联样式CSSProperties-
title标题内容ReactNode-
visible是否可见boolean-

MCPConfigure

支持 Container 的所有参数
属性说明类型默认值
className自定义类名string-
customOptions自定义选项列表MCPReactOption[]-
filter筛选函数,用于根据输入值过滤选项(inputValue: string, option: MCPReactOption) => boolean-
onAddClick新增按钮点击事件回调(e: MouseEvent) => void-
onConfigureClick配置按钮点击事件回调(e: MouseEvent, option: MCPReactOption) => void-
onEditClick编辑按钮点击事件回调(e: MouseEvent, option: MCPReactOption) => void-
onSearch搜索事件回调,返回输入值和是否为自定义标识(inputValue: string, custom: boolean) => void-
onStatusChange状态变化事件回调,返回选项列表和是否为自定义标识(options: MCPReactOption[], custom: boolean) => void-
options基础选项列表MCPReactOption[]-
placeholder输入框占位提示文字string请输入
renderItem自定义选项渲染函数(option: MCPReactOption,custom: boolean) => ReactNode-
style自定义内联样式CSSProperties-

MCPReactOption

属性说明类型默认值
active是否处于激活状态booleanfalse
configure是否显示配置相关操作/标识booleanfalse
desc描述内容ReactNode-
disabled是否禁用,为 true 时用户无法更改配置的激活与否状态booleanfalse
icon图标元素ReactNode-
label标签文本string-
value对应的值string-

Annotation

支持 Container 的所有参数
属性说明类型默认值
activeKey当前激活项的键值,支持单个或多个string | string[]-
className自定义类名string-
info注解信息列表,包含头部、键值、参考来源详情等内容{ header: React.ReactNode; key: string; annotations: AnnotationItem[] }[]-
onChange激活项变更时的回调函数,返回当前激活的键值(key: string | string[]) => void-
onClick点击参考来源时的回调函数,返回鼠标事件和对应的参考来源(e: MouseEvent, item: AnnotationItem) => void-
renderItem自定义参考来源的渲染函数(annotation: AnnotationItem) => void-
style自定义内联样式React.CSSProperties-

AnnotationItem

属性说明类型默认值
detail内容详情/补充说明(如视频简介、文本备注等)string-
duration时长(通常为视频时长,单位:秒)number-
img图片地址(如视频封面图、文本配图地址)string-
logo站点/内容所属平台的 logo 图片地址string-
onClick点击事件回调函数,返回点击事件对象和当前参考来源数据(event: MouseEvent, item: AnnotationItem) => void-
order引用序号(用于内容排序/标注序号展示)number-
siteName内容所属的站点/平台名称string-
title内容标题string-
type内容类型'video' | 'text'-
url资源链接,点击参考来源将跳转此地址string-
属性说明类型默认值
className自定义类名string-
detailContent详情区域的内容
DetailContent
-
fileEditable文件内容是否可编辑booleantrue
imgUploadProps图片上传相关配置属性ImageUploadNodeOptions-
mode展示模式,可选值为 main、code、file 或其他自定义字符串string-
onActiveOptionChange激活选项变更时的回调函数,返回鼠标事件和当前激活项键值(e: MouseEvent, activeKey: string) => void-
onBackWard返回操作的回调函数,返回鼠标事件和当前模式,支持异步处理(e: MouseEvent, mode: string) => void | Promise<any>-
onDetailContentCopy详情内容复制操作的回调函数,返回鼠标事件、复制的内容和复制结果(e: MouseEvent, content: string, res: boolean) => void-
onFileContentChange文件内容变更时的回调函数,返回变更后的文件内容(content: string) => void-
renderDetailContent自定义详情区域内容的渲染函数,接收当前模式作为参数(mode: string) => ReactNode-
renderDetailHeader自定义详情区域头部的渲染函数,接收当前模式作为参数(mode: string, detailContent:
DetailContent
) => ReactNode
-
renderMainContent自定义主内容区域的渲染函数,接收当前激活项键值作为参数(activeKey: string) => ReactNode-
style自定义内联样式React.CSSProperties-

Code

属性说明类型默认值
activeKey当前激活项的标识,支持单个字符串(单选)或字符串数组(多选)string | string[]-
className自定义类名,用于覆盖组件样式string-
codes代码详情列表CodeItemProps[]-
onChange激活项变更时的回调函数,返回当前激活的项标识(activeKey: string | string[]) => void-
onExpand展开操作的回调函数,返回鼠标事件和对应的代码详情项(e: MouseEvent, code: CodeItemProps, mode: string) => void-
style自定义内联样式React.CSSProperties-

CodeItemProps

属性说明类型默认值
codeHighlightPropscodeHighlight 的参数CodeHighlightProps
content代码/文本内容string-
isJson是否为 JSON 格式内容boolean-
jsonViewerPropsJsonViewer 的参数JsonViewerProps-
language代码语言类型(如 js、ts、json 等), 同 codeHighlight 的string-

File

FileContent

属性说明类型默认值
activeKey当前激活项的标识,支持单个字符串(单选)或字符串数组(多选)string | string[]-
className自定义类名,用于覆盖组件样式string-
files文件信息列表FileItemProps[]-
onChange激活项变更时的回调函数,返回当前激活的项标识(activeKey: string | string[]) => void-
onExpand展开文件项的回调函数,返回鼠标事件和对应的文件信息项(e: MouseEvent, file: FileItemProps, mode: string) => void-
style自定义内联样式,用于调整组件样式React.CSSProperties-

FileItemProps

属性说明类型默认值
className自定义类名string-
content编辑区域的文本/内容string-
editable是否可编辑boolean-
extensions扩展插件列表Extension[]-
imgUploadProps图片上传相关配置属性ImageUploadNodeOptions-
key唯一标识键值string-
name名称string-'
onContentChange内容变更时的回调函数,返回变更后的内容(content: string) => void-
style自定义内联样式React.CSSProperties-