diff options
author | Benjamin Chausse <benjamin@chausse.xyz> | 2025-01-16 00:20:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-16 00:20:12 -0500 |
commit | 7d2afe1ca176d0eb76f65523ed7ebcbca702d0c1 (patch) | |
tree | 148d0f8da77686ff7d713d8a233b3545b7994e2a /internal/picker/picker.go | |
parent | f438213c56fb072bbd3dc1aed0fd7e901181a7b9 (diff) |
Central UI (#26)
* migrate to urfave/cli V3
* Remove slider background
* Force the use of TrueColor everywhere
* All ui info in one location
* Fix BinaryFill Example
* Make unfocused tabs more faint
* Fix color input width
* Ctrl-c overrides color input and quits termpicker
* docs: remove redundant comment
* fix: refactor picker View()
Diffstat (limited to 'internal/picker/picker.go')
-rw-r--r-- | internal/picker/picker.go | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/internal/picker/picker.go b/internal/picker/picker.go index 5a7493d..1c39aaa 100644 --- a/internal/picker/picker.go +++ b/internal/picker/picker.go @@ -2,17 +2,15 @@ package picker import ( "fmt" + "strings" "github.com/ChausseBenjamin/termpicker/internal/colors" "github.com/ChausseBenjamin/termpicker/internal/slider" + "github.com/ChausseBenjamin/termpicker/internal/ui" "github.com/charmbracelet/bubbles/key" tea "github.com/charmbracelet/bubbletea" ) -const ( - activeRune = '>' -) - type Model struct { title string active int @@ -111,21 +109,24 @@ func (m Model) Init() tea.Cmd { return tea.Batch(cmds...) } -func (m Model) View() string { - var s string +func ViewSlider(active bool, s slider.Model) string { + if active { + return fmt.Sprintf("%s %s", + ui.Style().PickerCursor.Render(ui.PickerSelRune), + s.View(), + ) + } + return fmt.Sprintf(" %s", + s.View(), + ) +} - carriageReturn := "" +func (m Model) View() string { + sliderList := make([]string, len(m.sliders)) for i, slider := range m.sliders { - if i > 0 { - carriageReturn = "\n" - } - if i == m.active { - s += fmt.Sprintf("%v%c %s", carriageReturn, activeRune, slider.View()) - } else { - s += fmt.Sprintf("%v %s", carriageReturn, slider.View()) - } + sliderList[i] = ViewSlider(i == m.active, slider) } - return s + return strings.Join(sliderList, "\n") } func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { |