Some more work trying to get the contrast of the field types right
This commit is contained in:
parent
4aac153edb
commit
d660608626
|
@ -22,7 +22,7 @@ var (
|
||||||
Background(lipgloss.Color("#4479ff"))
|
Background(lipgloss.Color("#4479ff"))
|
||||||
|
|
||||||
fieldTypeStyle = lipgloss.NewStyle().
|
fieldTypeStyle = lipgloss.NewStyle().
|
||||||
Foreground(lipgloss.Color("#31e131"))
|
Foreground(lipgloss.AdaptiveColor{Light: "#2B800C", Dark: "#73C653"})
|
||||||
metaInfoStyle = lipgloss.NewStyle().
|
metaInfoStyle = lipgloss.NewStyle().
|
||||||
Foreground(lipgloss.Color("#888888"))
|
Foreground(lipgloss.Color("#888888"))
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,6 +2,7 @@ package dynamotableview
|
||||||
|
|
||||||
import (
|
import (
|
||||||
table "github.com/calyptia/go-bubble-table"
|
table "github.com/calyptia/go-bubble-table"
|
||||||
|
"github.com/charmbracelet/bubbles/key"
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
tea "github.com/charmbracelet/bubbletea"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
"github.com/lmika/awstools/internal/dynamo-browse/controllers"
|
"github.com/lmika/awstools/internal/dynamo-browse/controllers"
|
||||||
|
@ -18,10 +19,22 @@ var (
|
||||||
Background(lipgloss.Color("#4479ff"))
|
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 {
|
type Model struct {
|
||||||
frameTitle frame.FrameTitle
|
frameTitle frame.FrameTitle
|
||||||
table table.Model
|
table table.Model
|
||||||
w, h int
|
w, h int
|
||||||
|
keyBinding KeyBinding
|
||||||
|
|
||||||
// model state
|
// model state
|
||||||
colOffset int
|
colOffset int
|
||||||
|
@ -39,6 +52,16 @@ func New() *Model {
|
||||||
return &Model{
|
return &Model{
|
||||||
frameTitle: frameTitle,
|
frameTitle: frameTitle,
|
||||||
table: tbl,
|
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()
|
m.updateTable()
|
||||||
return m, m.postSelectedItemChanged
|
return m, m.postSelectedItemChanged
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
switch msg.String() {
|
switch {
|
||||||
// Table nav
|
// Table nav
|
||||||
case "i", "up":
|
case key.Matches(msg, m.keyBinding.MoveUp):
|
||||||
m.table.GoUp()
|
m.table.GoUp()
|
||||||
return m, m.postSelectedItemChanged
|
return m, m.postSelectedItemChanged
|
||||||
case "k", "down":
|
case key.Matches(msg, m.keyBinding.MoveDown):
|
||||||
m.table.GoDown()
|
m.table.GoDown()
|
||||||
return m, m.postSelectedItemChanged
|
return m, m.postSelectedItemChanged
|
||||||
case "j":
|
case key.Matches(msg, m.keyBinding.PageUp):
|
||||||
m.setLeftmostDisplayedColumn(m.colOffset - 1)
|
|
||||||
return m, nil
|
|
||||||
case "l":
|
|
||||||
m.setLeftmostDisplayedColumn(m.colOffset + 1)
|
|
||||||
return m, nil
|
|
||||||
case "I", "pgup":
|
|
||||||
m.table.GoPageUp()
|
m.table.GoPageUp()
|
||||||
return m, m.postSelectedItemChanged
|
return m, m.postSelectedItemChanged
|
||||||
case "K", "pgdn":
|
case key.Matches(msg, m.keyBinding.PageDown):
|
||||||
m.table.GoPageDown()
|
m.table.GoPageDown()
|
||||||
return m, m.postSelectedItemChanged
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue