MujicaUI

Chat Sessions · #256

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

256 SharedConversationView · 分享会话视图

用途

只读显示他人分享的会话,带分享者与时间,提供复制链接回调。

最小示例

msgs := []chat.SessionMessage{{Role: chat.SessionUser, Text: "Hello"}, {Role: chat.SessionAssistant, Text: "Good day."}}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	if chat.SharedConversationView(c, msgs, chat.SharedConversationViewOptions{Title: "Greeting", SharedBy: "Ann"}).Changed() {
		c.WriteClipboard("https://example.com/share/1")
	}
}
ui.Render(view, 400, 300, 1)

参数

func SharedConversationView(c *ui.Context, messages []SessionMessage, opts SharedConversationViewOptions) ChoiceResult。

SessionMessage:Role(SessionUser、SessionAssistant、SessionSystem)、Author、Text、Time。

字段类型默认值含义
Titlestring必填会话标题。
SharedBystring""分享者,空显示“未知”。
SharedAttime.Time零值分享时间,零值不显示。
Disabledboolfalse禁用复制链接。

状态

标题区、只读标记(锁形图标)、用户消息(描边气泡)、助手消息、禁用。

事件

Changed():点击“复制链接”,由调用方生成链接并写入剪贴板。

键盘操作

  • Tab:复制链接按钮,再到消息列表;消息文字可选择复制。

限制

  • 消息以纯文本显示,不渲染 Markdown(Markdown 渲染属于 MarkdownView 组件)。
  • 消息列表虚拟化,只构建可见消息。