Toggle creates a checkbox. Accepts either a *StateValue[bool] for state-driven binding, or a plain bool for the transient/row case. g.Toggle(darkMode).Label("Dark Mode") g.Toggle(todo.Done).OnChange(onDoneChanged) // inside a List row
(arg any)
| 6 | // g.Toggle(darkMode).Label("Dark Mode") |
| 7 | // g.Toggle(todo.Done).OnChange(onDoneChanged) // inside a List row |
| 8 | func Toggle(arg any) *viewNode { |
| 9 | data := &toggleData{} |
| 10 | switch v := arg.(type) { |
| 11 | case *StateValue[bool]: |
| 12 | data.state = v |
| 13 | data.checked = v.Get() |
| 14 | case bool: |
| 15 | data.checked = v |
| 16 | default: |
| 17 | panic("gova: Toggle requires *StateValue[bool] or bool") |
| 18 | } |
| 19 | return &viewNode{kind: viewKindToggle, toggle: data} |
| 20 | } |
| 21 | |
| 22 | // Label sets the toggle's label text. Works on Toggle nodes. |
| 23 | func (n *viewNode) Label(label string) *viewNode { |