MujicaUI

Messaging & Mail · #417

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

417 MailComposer 邮件编辑器

用途

编辑收件人、抄送、密送、主题、正文和附件,将草稿交给调用方保存。

最小示例

draft := messaging.MailDraft{To: []string{"uika@example.com"}}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	r := messaging.MailComposer(c, &draft, messaging.MailComposerOptions{
		OnSaveDraft: func(d messaging.MailDraft) {}, // store d
	})
	if r.Sent {
		draft = messaging.MailDraft{}
	}
}
ui.Render(view, 400, 300, 1)

参数

MailDraft 保存 To、Cc、Bcc、Subject、Body、Attachments。Contacts 提供联系人。OnSaveDraft func(MailDraft) 必填,收到独立的切片副本;OnAttach func() 可选;Disabled 默认 false。

状态

载入含抄送、密送地址的草稿时自动显示对应字段;点击地址字段标签会聚焦编辑器。

默认、聚焦和悬停状态沿用主题、密度与文字缩放;适用操作在自身或祖先禁用时停止处理。

事件

Sent 表示发送请求,Discarded 表示舍弃请求。编辑后静置两秒调用 OnSaveDraft;手动保存立即回调。

键盘操作

Tab 访问字段与操作;Cmd/Ctrl+S 保存草稿;组件内 Cmd/Ctrl+Enter 发送;正文 Enter 换行。

限制

邮箱语法由 net/mail.ParseAddress 校验;实际发送、附件选择与存储由调用方处理;保存回调在界面线程运行。