diff options
| author | Paul Bütow <1224732+snonux@users.noreply.github.com> | 2025-06-20 18:36:01 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-20 18:36:01 +0300 |
| commit | 6acfce72b3ed9d814e546dc35ebfb45c8f833f41 (patch) | |
| tree | 6544f81103500a1d3d1fd5401012d41f677cb086 | |
| parent | fd6ac6bf1c2269093ba9fa0b20365a31d12a7bfa (diff) | |
| parent | e12c3213df812fdc0b21eba3d918c68b05d2502a (diff) | |
Merge pull request #25 from snonux/codex/remove-table-headers-and-show-status-info
Hide table headers and show selected column
| -rw-r--r-- | internal/atable/table.go | 36 | ||||
| -rw-r--r-- | internal/ui/table.go | 8 |
2 files changed, 33 insertions, 11 deletions
diff --git a/internal/atable/table.go b/internal/atable/table.go index 5e74864..d6ea99d 100644 --- a/internal/atable/table.go +++ b/internal/atable/table.go @@ -17,12 +17,13 @@ type Model struct { KeyMap KeyMap Help help.Model - cols []Column - rows []Row - cursor int - colCursor int - focus bool - styles Styles + cols []Column + rows []Row + cursor int + colCursor int + focus bool + styles Styles + showHeaders bool viewport viewport.Model start int @@ -149,9 +150,10 @@ func New(opts ...Option) Model { colCursor: 0, viewport: viewport.New(0, 20), //nolint:mnd - KeyMap: DefaultKeyMap(), - Help: help.New(), - styles: DefaultStyles(), + KeyMap: DefaultKeyMap(), + Help: help.New(), + styles: DefaultStyles(), + showHeaders: true, } for _, opt := range opts { @@ -212,6 +214,13 @@ func WithKeyMap(km KeyMap) Option { } } +// WithShowHeaders controls rendering of table headers. +func WithShowHeaders(show bool) Option { + return func(m *Model) { + m.showHeaders = show + } +} + // Update is the Bubble Tea update loop. func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) { if !m.focus { @@ -267,7 +276,11 @@ func (m *Model) Blur() { // View renders the component. func (m Model) View() string { - return m.headersView() + "\n" + m.viewport.View() + headers := m.headersView() + if headers == "" { + return m.viewport.View() + } + return headers + "\n" + m.viewport.View() } // HelpView is a helper method for rendering the help menu from the keymap. @@ -447,6 +460,9 @@ func (m *Model) FromValues(value, separator string) { } func (m Model) headersView() string { + if !m.showHeaders { + return "" + } s := make([]string, 0, len(m.cols)) for _, col := range m.cols { if col.Width <= 0 { diff --git a/internal/ui/table.go b/internal/ui/table.go index a3f6581..4c5aa3d 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -71,6 +71,7 @@ func newTable(rows []atable.Row) atable.Model { atable.WithColumns(cols), atable.WithRows(rows), atable.WithFocused(true), + atable.WithShowHeaders(false), ) styles := atable.DefaultStyles() styles.Header = styles.Header.Foreground(lipgloss.Color("205")) @@ -228,7 +229,12 @@ func (m Model) View() string { } func (m Model) statusLine() string { - status := fmt.Sprintf("Total:%d InProgress:%d Due:%d", m.total, m.inProgress, m.due) + header := "" + cols := m.tbl.Columns() + if idx := m.tbl.ColumnCursor(); idx >= 0 && idx < len(cols) { + header = cols[idx].Title + } + status := fmt.Sprintf("%s Total:%d InProgress:%d Due:%d", header, m.total, m.inProgress, m.due) return lipgloss.NewStyle(). Foreground(lipgloss.Color("229")). Background(lipgloss.Color("57")). |
