MujicaUI

Agent · #264

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

264 PermissionPrompt 权限请求

用途

请求权限:允许一次、始终允许或拒绝,并说明“始终允许”覆盖的范围。

最小示例

open := true
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	r := agent.PermissionPrompt(c, &open, agent.PermissionPromptOptions{
		Title: "Write to the ledger?", Scope: "Write access to ~/court/ledger",
	})
	if r.Choice == agent.PermissionAllowAlways {
		fmt.Println("remember the grant")
	}
}
ui.Render(view, 400, 300, 1)

签名:func PermissionPrompt(c *ui.Context, open *bool, opts PermissionPromptOptions) PermissionResult。Title 或 Scope 为空时 panic。

参数

字段类型默认值含义
Titlestring必填问题。
Descriptionstring""补充说明。
Scopestring必填“始终允许”覆盖的范围。

状态

  • 范围说明放在带锁形图标的框内。
  • 打开时焦点在“拒绝”,点击遮罩无效。

事件

  • Choice:本帧的选择,PermissionAllowOnce、PermissionAllowAlways、PermissionDeny;无选择为 PermissionNone。Escape 记为拒绝。

键盘操作

  • 打开时焦点在拒绝;Tab 依次到“始终允许”“允许一次”;Enter 触发聚焦按钮;Escape 拒绝。

限制

  • 组件不保存授权,记住“始终允许”由调用方负责。