Some more work trying to get the contrast of the field types right

This commit is contained in:
Leon Mika 2022-06-04 08:39:05 +10:00
parent 4aac153edb
commit d660608626
2 changed files with 41 additions and 12 deletions

View file

@ -22,7 +22,7 @@ var (
Background(lipgloss.Color("#4479ff"))
fieldTypeStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#31e131"))
Foreground(lipgloss.AdaptiveColor{Light: "#2B800C", Dark: "#73C653"})
metaInfoStyle = lipgloss.NewStyle().
Foreground(lipgloss.Color("#888888"))
)

View file

@ -2,6 +2,7 @@ package dynamotableview
import (
table "github.com/calyptia/go-bubble-table"
"github.com/charmbracelet/bubbles/key"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
"github.com/lmika/awstools/internal/dynamo-browse/controllers"
@ -18,10 +19,22 @@ var (
Background(lipgloss.Color("#4479ff"))
)
type KeyBinding struct {
MoveUp key.Binding
MoveDown key.Binding
PageUp key.Binding
PageDown key.Binding
Home key.Binding
End key.Binding
ColLeft key.Binding
ColRight key.Binding
}
type Model struct {
frameTitle frame.FrameTitle
table table.Model
w, h int
keyBinding KeyBinding
// model state
colOffset int
@ -39,6 +52,16 @@ func New() *Model {
return &Model{
frameTitle: frameTitle,
table: tbl,
keyBinding: KeyBinding{
MoveUp: key.NewBinding(key.WithKeys("i", "up")),
MoveDown: key.NewBinding(key.WithKeys("k", "down")),
PageUp: key.NewBinding(key.WithKeys("I", "pgup")),
PageDown: key.NewBinding(key.WithKeys("K", "pgdown")),
Home: key.NewBinding(key.WithKeys("I", "home")),
End: key.NewBinding(key.WithKeys("K", "end")),
ColLeft: key.NewBinding(key.WithKeys("j", "left")),
ColRight: key.NewBinding(key.WithKeys("l", "right")),
},
}
}
@ -53,26 +76,32 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.updateTable()
return m, m.postSelectedItemChanged
case tea.KeyMsg:
switch msg.String() {
switch {
// Table nav
case "i", "up":
case key.Matches(msg, m.keyBinding.MoveUp):
m.table.GoUp()
return m, m.postSelectedItemChanged
case "k", "down":
case key.Matches(msg, m.keyBinding.MoveDown):
m.table.GoDown()
return m, m.postSelectedItemChanged
case "j":
m.setLeftmostDisplayedColumn(m.colOffset - 1)
return m, nil
case "l":
m.setLeftmostDisplayedColumn(m.colOffset + 1)
return m, nil
case "I", "pgup":
case key.Matches(msg, m.keyBinding.PageUp):
m.table.GoPageUp()
return m, m.postSelectedItemChanged
case "K", "pgdn":
case key.Matches(msg, m.keyBinding.PageDown):
m.table.GoPageDown()
return m, m.postSelectedItemChanged
case key.Matches(msg, m.keyBinding.Home):
m.table.GoTop()
return m, m.postSelectedItemChanged
case key.Matches(msg, m.keyBinding.End):
m.table.GoBottom()
return m, m.postSelectedItemChanged
case key.Matches(msg, m.keyBinding.ColLeft):
m.setLeftmostDisplayedColumn(m.colOffset - 1)
return m, nil
case key.Matches(msg, m.keyBinding.ColRight):
m.setLeftmostDisplayedColumn(m.colOffset + 1)
return m, nil
}
}