show only selected rows when confirming

This commit is contained in:
Lilian Jónsdóttir 2024-06-29 19:56:51 -07:00
parent d4d061b31e
commit ba20b23767

View file

@ -246,7 +246,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.toggleItem(m.table.Cursor())
case key.Matches(msg, m.keys.doit):
if !m.readonly && m.mode != modes.Interactive {
return m, tea.Quit
return m.quit(false)
}
case key.Matches(msg, m.keys.nada):
m.unselectAll()
@ -352,11 +352,25 @@ func (m model) footer() string {
func (m model) quit(unselect_all bool) (model, tea.Cmd) {
if unselect_all {
m.unselectAll()
} else {
m.onlySelected()
}
m.table.SetStyles(makeUnselectedStyle())
return m, tea.Quit
}
func (m *model) onlySelected() {
var rows = make([]table.Row, 0)
for _, row := range m.table.Rows() {
if row[4] == check {
rows = append(rows, row)
} else {
rows = append(rows, table.Row{})
}
}
m.table.SetRows(rows)
}
// updateRow updates row of `index` with `row`
func (m *model) updateRow(index int, selected bool) {
rows := m.table.Rows()