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

使用场景

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

代码演示

基础容器

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

MCP 配置

使用 MCPConfigure 进行 MCP 工具的展示、启用/关闭、配置及搜索
  • 通过 optionscustomOptions 设置内置的 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 有主视图(modemain)和详情视图(modecodetext 及其他)。
主视图可以通过 title 配置标题,通过 showClose 决定是否展示关闭按钮,通过 options 设置顶部的按钮组。
对于主视图的内容渲染,可通过 renderMainContent 传入渲染函数。可使用 Annotation 中的 AnnotationContent 渲染参考来源,使用 Sidebar 中内置的 FileContent 渲染富文本, CodeContent 渲染代码。
对于详情视图,如果是富文本或者代码,分别设置 modecodetext,通过 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-