ssm-browse: fixed the views of dynamo-browse

This commit is contained in:
Leon Mika 2022-03-29 15:46:18 +11:00
parent f6f06eb22d
commit d3f6475070
6 changed files with 79 additions and 96 deletions

View file

@ -4,7 +4,6 @@ import (
table "github.com/calyptia/go-bubble-table"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
"github.com/lmika/awstools/internal/common/ui/commandctrl"
"github.com/lmika/awstools/internal/dynamo-browse/controllers"
"github.com/lmika/awstools/internal/dynamo-browse/models"
"github.com/lmika/awstools/internal/dynamo-browse/ui/teamodels/dynamoitemview"
@ -13,9 +12,6 @@ import (
)
type Model struct {
tableReadControllers *controllers.TableReadController
commandCtrl *commandctrl.CommandController
frameTitle frame.FrameTitle
table table.Model
w, h int
@ -24,26 +20,24 @@ type Model struct {
resultSet *models.ResultSet
}
func New(tableReadControllers *controllers.TableReadController, commandCtrl *commandctrl.CommandController) Model {
func New() *Model {
tbl := table.New([]string{"pk", "sk"}, 100, 100)
rows := make([]table.Row, 0)
tbl.SetRows(rows)
frameTitle := frame.NewFrameTitle("No table", true)
return Model{
tableReadControllers: tableReadControllers,
commandCtrl: commandCtrl,
return &Model{
frameTitle: frameTitle,
table: tbl,
}
}
func (m Model) Init() tea.Cmd {
func (m *Model) Init() tea.Cmd {
return nil
}
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
case controllers.NewResultSet:
m.resultSet = msg.ResultSet
@ -58,26 +52,17 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case "k", "down":
m.table.GoDown()
return m, m.postSelectedItemChanged
// TEMP
case "s":
return m, m.tableReadControllers.Rescan(m.resultSet)
case ":":
return m, m.commandCtrl.Prompt()
// END TEMP
case "ctrl+c", "esc":
return m, tea.Quit
}
}
return m, nil
}
func (m Model) View() string {
func (m *Model) View() string {
return lipgloss.JoinVertical(lipgloss.Top, m.frameTitle.View(), m.table.View())
}
func (m Model) Resize(w, h int) layout.ResizingModel {
func (m *Model) Resize(w, h int) layout.ResizingModel {
m.w, m.h = w, h
tblHeight := h - m.frameTitle.HeaderHeight()
m.table.SetSize(w, tblHeight)
@ -120,31 +105,3 @@ func (m *Model) postSelectedItemChanged() tea.Msg {
return dynamoitemview.NewItemSelected{ResultSet: item.resultSet, Item: item.item}
}
/*
func (m *Model) updateViewportToSelectedMessage() {
selectedItem, ok := m.selectedItem()
if !ok {
m.viewport.SetContent("(no row selected)")
return
}
viewportContent := &strings.Builder{}
tabWriter := tabwriter.NewWriter(viewportContent, 0, 1, 1, ' ', 0)
for _, colName := range selectedItem.resultSet.Columns {
switch colVal := selectedItem.item[colName].(type) {
case nil:
break
case *types.AttributeValueMemberS:
fmt.Fprintf(tabWriter, "%v\tS\t%s\n", colName, colVal.Value)
case *types.AttributeValueMemberN:
fmt.Fprintf(tabWriter, "%v\tN\t%s\n", colName, colVal.Value)
default:
fmt.Fprintf(tabWriter, "%v\t?\t%s\n", colName, "(other)")
}
}
tabWriter.Flush()
m.viewport.SetContent(viewportContent.String())
}
*/