WIP components (as built)
This commit is contained in:
116 files changed
+6484
-9
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# 402 ChatMessage 聊天消息
|
||||
|
||||
## 用途
|
||||
|
||||
展示连续聊天消息、发送时间、编辑标记,以及调用方提供的回复和回应插槽。
|
||||
|
||||
## 最小示例
|
||||
|
||||
```go
|
||||
prev := mujica.ChatEntry{ID: "1", Author: "Uika", Time: time.Now(), Text: "Rehearsal at nine."}
|
||||
m := mujica.ChatEntry{ID: "2", Author: "Uika", Time: time.Now(), Text: "Bring the masks.", Edited: true}
|
||||
view := func(c *ui.Context) {
|
||||
mujica.Use(c, mujica.Settings{})
|
||||
mujica.ChatMessage(c, prev, mujica.ChatMessageOptions{})
|
||||
mujica.ChatMessage(c, m, mujica.ChatMessageOptions{
|
||||
Continued: mujica.ChatContinues(prev, m),
|
||||
Reactions: func() { mujica.Tag(c, "👍 2", mujica.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;回复与回应的业务逻辑在插槽中实现。
|
||||
Reference in new issue
Block a user