Files
dirmd/internal/tui/checkbox.go
T
2026-08-27 17:57:23 +01:00

32 lines
509 B
Go

package tui
type Checkbox struct {
Label string
Checked bool
}
func (c *Checkbox) Toggle() {
c.Checked = !c.Checked
}
func (c Checkbox) Render(focused bool) string {
marker := "[ ]"
if c.Checked {
marker = "[x]"
}
if c.Checked {
marker = checkedStyle.Render(marker)
} else {
marker = uncheckedStyle.Render(marker)
}
label := labelStyle.Render(c.Label)
if focused {
label = focusedStyle.Render("▶ " + marker + " " + c.Label)
return label
}
return " " + marker + " " + label
}