summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Bütow <1224732+snonux@users.noreply.github.com>2025-06-20 18:35:48 +0300
committerPaul Bütow <1224732+snonux@users.noreply.github.com>2025-06-20 18:35:48 +0300
commite12c3213df812fdc0b21eba3d918c68b05d2502a (patch)
treeb4400c158e6924f51866aceee266dab36ba7d54d /internal
parent20417e3024916a23a0378f72c1336ccbb56f0bae (diff)
Add option to hide headers
Diffstat (limited to 'internal')
-rw-r--r--internal/atable/table.go36
-rw-r--r--internal/ui/table.go8
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 51bd9e4..c8ec17d 100644
--- a/internal/ui/table.go
+++ b/internal/ui/table.go
@@ -64,6 +64,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"))
@@ -185,7 +186,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")).