From cc7ead496fac196bcb9b3fc917bf3b1067f13391 Mon Sep 17 00:00:00 2001 From: Leon Mika Date: Mon, 18 Jul 2022 08:04:03 +1000 Subject: [PATCH] awstools: Fixed some bugs with the item view UI model - The item view model is now being updated when the item itself is being updated - Fixed a NPE when the item view model receives a nil item --- internal/common/ui/commandctrl/commandctrl.go | 5 +---- internal/dynamo-browse/ui/model.go | 4 +++- internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go | 1 + .../dynamo-browse/ui/teamodels/dynamotableview/model.go | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/common/ui/commandctrl/commandctrl.go b/internal/common/ui/commandctrl/commandctrl.go index 1f47e1c..9170a44 100644 --- a/internal/common/ui/commandctrl/commandctrl.go +++ b/internal/common/ui/commandctrl/commandctrl.go @@ -60,10 +60,7 @@ func (c *CommandController) Alias(commandName string) Command { return events.SetError(errors.New("no such command: " + commandName)) } - if len(args) > 1 { - return command(args[1:]) - } - return command([]string{}) + return command(args) } } diff --git a/internal/dynamo-browse/ui/model.go b/internal/dynamo-browse/ui/model.go index b8df6df..bc5577c 100644 --- a/internal/dynamo-browse/ui/model.go +++ b/internal/dynamo-browse/ui/model.go @@ -28,6 +28,7 @@ type Model struct { root tea.Model tableView *dynamotableview.Model + itemView *dynamoitemview.Model } func NewModel(rc *controllers.TableReadController, wc *controllers.TableWriteController, cc *commandctrl.CommandController) Model { @@ -122,6 +123,7 @@ func NewModel(rc *controllers.TableReadController, wc *controllers.TableWriteCon tableSelect: tableSelect, root: root, tableView: dtv, + itemView: div, } } @@ -132,7 +134,7 @@ func (m Model) Init() tea.Cmd { func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case controllers.ResultSetUpdated: - m.tableView.Refresh() + return m, m.tableView.Refresh() case tea.KeyMsg: if !m.statusAndPrompt.InPrompt() && !m.tableSelect.Visible() { switch msg.String() { diff --git a/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go b/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go index f921656..b2265d1 100644 --- a/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go +++ b/internal/dynamo-browse/ui/teamodels/dynamoitemview/model.go @@ -85,6 +85,7 @@ func (m *Model) Resize(w, h int) layout.ResizingModel { func (m *Model) updateViewportToSelectedMessage() { if m.selectedItem == nil { m.viewport.SetContent("") + return } viewportContent := &strings.Builder{} diff --git a/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go b/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go index b86fa81..343625d 100644 --- a/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go +++ b/internal/dynamo-browse/ui/teamodels/dynamotableview/model.go @@ -197,13 +197,13 @@ func (m *Model) selectedItem() (itemTableRow, bool) { func (m *Model) postSelectedItemChanged() tea.Msg { item, ok := m.selectedItem() if !ok { - return nil + return dynamoitemview.NewItemSelected{ResultSet: item.resultSet, Item: nil} } return dynamoitemview.NewItemSelected{ResultSet: item.resultSet, Item: item.item} } -func (m *Model) Refresh() { - +func (m *Model) Refresh() tea.Cmd { m.table.SetRows(m.rows) + return m.postSelectedItemChanged }