diff --git a/table/table.go b/table/table.go index 3209eb77..41875b0f 100644 --- a/table/table.go +++ b/table/table.go @@ -14,12 +14,11 @@ import ( type Model struct { KeyMap KeyMap - cols []Column - rows []Row - cursor int - focus bool - styles Styles - styleFunc StyleFunc + cols []Column + rows []Row + cursor int + focus bool + styles Styles viewport viewport.Model start int @@ -189,13 +188,6 @@ func WithStyles(s Styles) Option { } } -// WithStyleFunc sets the table style func which can determine a cell style per column, row, and selected state. -func WithStyleFunc(f StyleFunc) Option { - return func(m *Model) { - m.styleFunc = f - } -} - // WithKeyMap sets the key map. func WithKeyMap(km KeyMap) Option { return func(m *Model) { @@ -405,9 +397,6 @@ func (m *Model) FromValues(value, separator string) { m.SetRows(rows) } -// StyleFunc is a function that can be used to customize the style of a table cell based on the row and column index. -type StyleFunc func(row, col int, value string) lipgloss.Style - func (m Model) headersView() string { s := make([]string, 0, len(m.cols)) for _, col := range m.cols { @@ -427,18 +416,8 @@ func (m *Model) renderRow(r int) string { if m.cols[i].Width <= 0 { continue } - var cellStyle lipgloss.Style - if m.styleFunc != nil { - cellStyle = m.styleFunc(r, i, value) - if r == m.cursor { - cellStyle = cellStyle.Inherit(m.styles.Selected) - } - } else { - cellStyle = m.styles.Cell - } - style := lipgloss.NewStyle().Width(m.cols[i].Width).MaxWidth(m.cols[i].Width).Inline(true) - renderedCell := cellStyle.Render(style.Render(runewidth.Truncate(value, m.cols[i].Width, "…"))) + renderedCell := m.styles.Cell.Render(style.Render(runewidth.Truncate(value, m.cols[i].Width, "…"))) s = append(s, renderedCell) } diff --git a/table/table_test.go b/table/table_test.go index 24f075f0..d927be04 100644 --- a/table/table_test.go +++ b/table/table_test.go @@ -1,7 +1,6 @@ package table import ( - "strings" "testing" "github.com/charmbracelet/lipgloss" @@ -109,33 +108,3 @@ func TestRenderRow(t *testing.T) { }) } } -func TestRenderRowStyleFunc(t *testing.T) { - tests := []struct { - name string - table *Model - expected string - }{ - { - name: "simple row", - table: &Model{ - rows: []Row{{"Foooooo", "Baaaaar", "Baaaaaz"}}, - cols: cols, - styleFunc: func(row, col int, value string) lipgloss.Style { - if strings.HasSuffix(value, "z") { - return lipgloss.NewStyle().Transform(strings.ToLower) - } - return lipgloss.NewStyle().Transform(strings.ToUpper) - }, - }, - expected: "FOOOOOO BAAAAAR baaaaaz ", - }, - } - for _, tc := range tests { - t.Run(tc.name, func(t *testing.T) { - row := tc.table.renderRow(0) - if row != tc.expected { - t.Fatalf("\n\nWant: \n%s\n\nGot: \n%s\n", tc.expected, row) - } - }) - } -}