From 826a28664abf03ec0d05346f9f2ba85afb294116 Mon Sep 17 00:00:00 2001 From: Leon Mika Date: Mon, 28 Mar 2022 04:54:37 +0000 Subject: [PATCH] Small bug fix to table select filtering --- .../ui/teamodels/tableselect/items.go | 2 +- .../ui/teamodels/tableselect/list.go | 4 +++- .../ui/teamodels/tableselect/model.go | 15 +++++++++------ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/internal/dynamo-browse/ui/teamodels/tableselect/items.go b/internal/dynamo-browse/ui/teamodels/tableselect/items.go index 65e4308..0ce62e2 100644 --- a/internal/dynamo-browse/ui/teamodels/tableselect/items.go +++ b/internal/dynamo-browse/ui/teamodels/tableselect/items.go @@ -7,7 +7,7 @@ type tableItem struct { } func (ti tableItem) FilterValue() string { - return "" + return ti.name } func (ti tableItem) Title() string { diff --git a/internal/dynamo-browse/ui/teamodels/tableselect/list.go b/internal/dynamo-browse/ui/teamodels/tableselect/list.go index 84365ab..6542f1d 100644 --- a/internal/dynamo-browse/ui/teamodels/tableselect/list.go +++ b/internal/dynamo-browse/ui/teamodels/tableselect/list.go @@ -26,7 +26,9 @@ func newListController(tableNames []string, w, h int) listController { delegate := list.NewDefaultDelegate() delegate.ShowDescription = false - return listController{list.New(items, delegate, w, h)} + list := list.New(items, delegate, w, h) + + return listController{list: list} } func (l listController) Init() tea.Cmd { diff --git a/internal/dynamo-browse/ui/teamodels/tableselect/model.go b/internal/dynamo-browse/ui/teamodels/tableselect/model.go index b3894c9..a238159 100644 --- a/internal/dynamo-browse/ui/teamodels/tableselect/model.go +++ b/internal/dynamo-browse/ui/teamodels/tableselect/model.go @@ -1,6 +1,7 @@ package tableselect import ( + "github.com/charmbracelet/bubbles/list" tea "github.com/charmbracelet/bubbletea" "github.com/lmika/awstools/internal/dynamo-browse/controllers" "github.com/lmika/awstools/internal/dynamo-browse/ui/teamodels/layout" @@ -38,14 +39,16 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { if m.pendingSelection != nil { switch msg.String() { case "enter": - var sel controllers.PromptForTableMsg - sel, m.pendingSelection = *m.pendingSelection, nil + if m.listController.list.FilterState() != list.Filtering { + var sel controllers.PromptForTableMsg + sel, m.pendingSelection = *m.pendingSelection, nil - return m, sel.OnSelected(m.listController.list.SelectedItem().(tableItem).name) - default: - m.listController = cc.Collect(m.listController.Update(msg)).(listController) - return m, cc.Cmd() + return m, sel.OnSelected(m.listController.list.SelectedItem().(tableItem).name) + } } + + m.listController = cc.Collect(m.listController.Update(msg)).(listController) + return m, cc.Cmd() } }