# 256 SharedConversationView · 分享会话视图 ## 用途 只读显示他人分享的会话,带分享者与时间,提供复制链接回调。 ## 最小示例 ```go 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`。 | 字段 | 类型 | 默认值 | 含义 | | --- | --- | --- | --- | | `Title` | `string` | 必填 | 会话标题。 | | `SharedBy` | `string` | "" | 分享者,空显示“未知”。 | | `SharedAt` | `time.Time` | 零值 | 分享时间,零值不显示。 | | `Disabled` | `bool` | false | 禁用复制链接。 | ## 状态 标题区、只读标记(锁形图标)、用户消息(描边气泡)、助手消息、禁用。 ## 事件 `Changed()`:点击“复制链接”,由调用方生成链接并写入剪贴板。 ## 键盘操作 - Tab:复制链接按钮,再到消息列表;消息文字可选择复制。 ## 限制 - 消息以纯文本显示,不渲染 Markdown(Markdown 渲染属于 MarkdownView 组件)。 - 消息列表虚拟化,只构建可见消息。