2.0.0
Skip to content

Conversations 管理对话 ​

用于承载用户侧发送的历史对话列表。

何时使用 ​

  • 需要对多个会话进行管理
  • 查看历史会话列表

代码演示 ​

基本 ​

  • Help Me Write
  • AI Coding
  • Create Image
  • Deep Search
基本

基础用法。

受控模式 ​

  • Help Me Write
  • AI Coding
  • Create Image
  • Deep Search
受控模式

使用 activeKey、onActiveChange 属性,控制当前选中的会话。

分组展示 ​

  • Today
    • This's Conversation Item 1, you can click me!
    • Conversation Item 2
    • Conversation Item 3
  • Yesterday
    • Conversation Item 4
    • Conversation Item 5
    • Conversation Item 6
分组展示

使用 groupable 属性开启分组,开启后默认按 Conversation.group 字段分组。

分组可折叠 ​

  • Today(3)
  • Yesterday(3)
分组可折叠

配置 collapsible 属性为分组开启可折叠功能。

受控的分组可折叠 ​

  • Today
    • Conversation Item 1
    • Conversation Item 4
    • Conversation Item 7
  • Yesterday
  • Historical chats
受控的分组可折叠

受控的分组可折叠。

会话操作 ​

自定义操作 ​

  • Conversation Item 1
  • Conversation Item 2
  • Conversation Item 3
  • Conversation Item 4
自定义操作

自定义菜单入口。

新对话 ​

  • Help Me Write
  • AI Coding
  • Create Image
  • Deep Search
  • Today
    • Conversation Item 1
新对话

通过 creation 属性配置新建对话按钮。

自定义新对话 ​

  • Help Me Write
  • AI Coding
  • Create Image
  • Deep Search
  • Today
    • Conversation Item 1
自定义新对话

自定义新对话按钮的图标、文案和对齐方式。

快捷键 ​

Switch sessions with Alt/⌥ + number, and create a chat with Win/⌘ + K.
  • Help Me Write
  • AI Coding
  • Create Image
  • Deep Search
  • Today
    • Conversation Item 1
快捷键

使用 shortcutKeys 切换会话,或触发新建对话。也可以在 XProvider 的 conversations.shortcutKeys 里配置全局快捷键。

滚动加载 ​

API ​

ConversationsProps ​

属性说明类型默认值版本
activeKey当前选中的值string--
defaultActiveKey默认选中值string--
items会话列表数据源ItemType[]--
onActiveChange选中变更回调(value: string) => void--
menu会话操作菜单MenuProps | ((value: ConversationItemType) => MenuProps)--
groupable是否支持分组, 开启后默认按 Conversation.group 字段分组boolean | GroupableProps--
creation新建对话按钮的配置CreationProps-v2
shortcutKeys快捷键。creation 触发新建,items 按顺序选中会话。修饰键为 'Ctrl' | 'Alt' | 'Meta' | 'Shift',最后一个键是 KeyboardEvent.keyCode 或 'number'(数字键 1–9){ creation?: ShortcutKeys; items?: ShortcutKeys | ShortcutKeys[] }-v2
styles语义化结构 styleRecord<'root' | 'creation' | 'group' | 'item', CSSProperties>--
classNames语义化结构 classNameRecord<'root' | 'creation' | 'group' | 'item', string>--
rootClassName根节点类名string--

ItemType ​

ItemType = ConversationItemType | DividerItemType

ConversationItemType (Conversation) ​

属性说明类型默认值版本
key唯一标识string--
label会话名称VNode | string--
group会话分组类型,与 ConversationsProps.groupable 联动string--
icon会话图标VNode--
disabled是否禁用boolean--

DividerItemType ​

属性说明类型默认值版本
type固定值 'divider''divider'-v2
key唯一标识string-v2
dashed是否虚线boolean-v2

GroupableProps ​

属性说明类型默认值版本
label自定义分组标签渲染VNode | string | ((group: string, info: { groupInfo }) => VNode)--
collapsible是否可折叠boolean | ((group: string) => boolean)-v2
defaultExpandedKeys初始化展开的分组string[]-v2
expandedKeys当前展开的分组(受控)string[]-v2
onExpand展开分组变化回调(expandedKeys: string[]) => void-v2

CreationProps ​

属性说明类型默认值版本
label按钮文案。函数入参包含 shortcutKeyInfo 和 components.CreationLabelVNode | string | ((info) => VNode)语言包,英文 New chatv2
icon按钮图标VNode | (() => VNode)PlusOutlinedv2
align对齐方式'start' | 'center' | 'end''center'v2
disabled是否禁用booleanfalsev2
onClick点击回调(event?: MouseEvent) => void-v2

继承 antdv MenuProps 属性。

属性说明类型默认值版本
trigger自定义 menu 触发器VNode | ((conversation: ConversationItemType, info: { originNode: VNode }) => VNode)--
getPopupContainer菜单渲染父节点(triggerNode: HTMLElement) => HTMLElement--

Semantic DOM ​

  • Help Me Write
  • AI Coding
  • Create Image
  • Deep Search
  • Today
    • Conversation Item 1
    • Conversation Item 2
  • root
    管理对话根节点
  • item
    管理对话子节点
  • creation
    创建对话
  • group
    管理对话分组

主题变量(Design Token) ​

Token说明类型默认值
creationBgColor新会话按钮背景颜色stringrgba(primaryColor, 0.15)
creationBorderColor新会话按钮边框颜色stringrgba(primaryColor, 0.22)
creationHoverColor新会话按钮悬浮态背景颜色stringrgba(primaryColor, 0.25)
shortcutKeyTextColor快捷键标识字体颜色stringrgba(primaryColor, 0.65)

贡献者 ​

贡献者

正在加载贡献者信息...