MujicaUI

Messaging & Mail · #402

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

402 ChatMessage 聊天消息

用途

展示连续聊天消息、发送时间、编辑标记,以及调用方提供的回复和回应插槽。

最小示例

prev := messaging.ChatEntry{ID: "1", Author: "Uika", Time: time.Now(), Text: "Rehearsal at nine."}
m := messaging.ChatEntry{ID: "2", Author: "Uika", Time: time.Now(), Text: "Bring the masks.", Edited: true}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	messaging.ChatMessage(c, prev, messaging.ChatMessageOptions{})
	messaging.ChatMessage(c, m, messaging.ChatMessageOptions{
		Continued: messaging.ChatContinues(prev, m),
		Reactions: func() { display.Tag(c, "👍 2", display.TagOptions{}) },
	})
}
ui.Render(view, 400, 300, 1)

参数

ChatEntry 包含 ID、必填的 Author、Image、Time、Text、Edited、Own。ChatMessageOptions.Continued 默认 false;Reply 与 Reactions 为可选插槽。ChatContinues(prev, cur) 要求同一作者、相同 Own、间隔非负且小于五分钟。

状态

状态由调用方数据控制;浅深主题、密度与文字缩放随窗口设置变化。适用插槽操作沿用控件焦点和禁用状态。

事件

插槽中的按钮、链接和回应事件由调用方处理。

键盘操作

可选文字支持选择复制;插槽控件按 Tab 访问。

限制

调用方计算 Continued 或使用 ChatContinues;回复与回应的业务逻辑在插槽中实现。