48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
# 471 AccountSwitcher
|
|
|
|
账户切换。
|
|
|
|
## 用途
|
|
|
|
显示当前账户,菜单中切换已登录账户或添加账户。
|
|
|
|
## 最小示例
|
|
|
|
```go
|
|
current := "a"
|
|
accounts := []mujica.Account{{ID: "a", Name: "Sakiko Togawa", Email: "sakiko@court"}, {ID: "b", Name: "Oblivionis"}}
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
if mujica.AccountSwitcher(c, ¤t, accounts, mujica.AccountSwitcherOptions{}).Add() {
|
|
fmt.Println("sign in another account")
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
```
|
|
|
|
## 参数
|
|
|
|
| 字段 | 类型 | 默认值 | 含义 |
|
|
| --- | --- | --- | --- |
|
|
| `current` | `*string` | 必填 | 当前账户 ID,须在列表中。 |
|
|
| `accounts` | `[]Account` | 必填 | ID、Name 必填;Email、Avatar 可选。 |
|
|
| `Disabled` | `bool` | false | 禁用。 |
|
|
|
|
## 状态
|
|
|
|
关闭、展开、当前账户勾选、禁用。
|
|
|
|
## 事件
|
|
|
|
`Changed()` 切换;`Add()` 请求添加账户。
|
|
|
|
## 键盘操作
|
|
|
|
Enter/Space/↓ 打开菜单,方向键移动,Enter 选择,Escape 关闭。
|
|
|
|
## 限制
|
|
|
|
大集合使用虚拟列表,仅构建当前可见行。
|
|
|
|
- 菜单项只显示文字,头像只在按钮上。
|