MujicaUI

Chat Sessions · #242

ConversationItem 浅色主题渲染快照
浅色 · 渲染快照
ConversationItem 深色主题渲染快照
深色 · 渲染快照

242 ConversationItem · 会话条目

用途

一行会话:标题、时间、置顶标记,以及菜单中的重命名(行内编辑)、置顶、导出、删除。删除与导出只回调,由调用方执行。

最小示例

conv := chat.ChatConversation{ID: "1", Title: "Court etiquette", Updated: time.Now()}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	v := chat.ConversationItem(c, &conv, chat.ConversationItemOptions{})
	if v.Deleted {
		log.Println("delete", conv.ID)
	}
}
ui.Render(view, 400, 300, 1)

参数

func ConversationItem(c *ui.Context, conv *ChatConversation, opts ConversationItemOptions) ConversationItemView。conv 不能为 nil,ID 不能为空。

字段类型默认值含义
TodayDate零值(窗口时钟)决定时间显示为时刻、“昨天”或日期。
Selectedboolfalse显示为当前会话。
Disabledboolfalse禁用全部操作。
Draggableboolfalse允许拖到 ProjectList 的项目上,携带 ConversationDrag。

状态

默认、悬停、选中(Selection 底色 + 酒红标题)、置顶(星形图标)、行内编辑(输入框酒红边框)、禁用。

事件

ConversationItemView:Opened(点击或 Enter)、Renamed(新标题已写入 conv.Title)、PinToggled、Exported、Deleted。

键盘操作

  • Enter/Space:打开会话。
  • F2:行内重命名;输入框中 Enter 确认,Escape 取消;空白标题不会被接受。
  • Delete:请求删除。
  • 菜单按钮:Enter、Space 或 ↓ 打开,方向键移动,Escape 关闭。

限制

  • 删除没有内置确认;需要确认时由调用方弹出 AlertDialog。
  • 菜单按钮不在条目的 Tab 位之外另设快捷键。