mirror of
https://github.com/taigrr/gico.git
synced 2026-04-02 03:09:07 -07:00
allow selected items in filter
This commit is contained in:
@@ -46,7 +46,7 @@ type delegateKeyMap struct {
|
|||||||
func newDelegateKeyMap() *delegateKeyMap {
|
func newDelegateKeyMap() *delegateKeyMap {
|
||||||
return &delegateKeyMap{
|
return &delegateKeyMap{
|
||||||
toggle: key.NewBinding(
|
toggle: key.NewBinding(
|
||||||
key.WithKeys("space"),
|
key.WithKeys(" "),
|
||||||
key.WithHelp("space", "choose"),
|
key.WithHelp("space", "choose"),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ func (i selectablelist) GetSelected() []string {
|
|||||||
|
|
||||||
var settingsKey = key.NewBinding(
|
var settingsKey = key.NewBinding(
|
||||||
key.WithKeys("ctrl+g"),
|
key.WithKeys("ctrl+g"),
|
||||||
key.WithHelp("", "press ctrl+g to open settings"),
|
key.WithHelp("ctrl+g", "press ctrl+g to open settings"),
|
||||||
)
|
)
|
||||||
|
|
||||||
func (m Settings) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
func (m Settings) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
@@ -60,31 +60,74 @@ func (m Settings) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
switch m.cursor {
|
switch m.cursor {
|
||||||
case authors:
|
case authors:
|
||||||
var cmd tea.Cmd
|
var cmd tea.Cmd
|
||||||
|
batch := []tea.Cmd{}
|
||||||
switch msg := msg.(type) {
|
switch msg := msg.(type) {
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
switch msg.String() {
|
switch msg.String() {
|
||||||
case "space", "enter":
|
case " ", "enter":
|
||||||
selected := m.AuthorList.Cursor()
|
selected := 0
|
||||||
|
if !m.AuthorList.IsFiltered() {
|
||||||
|
selected = m.AuthorList.Index()
|
||||||
m.AllAuthors[selected].selected = !m.AllAuthors[selected].selected
|
m.AllAuthors[selected].selected = !m.AllAuthors[selected].selected
|
||||||
|
cmd = m.AuthorList.SetItem(selected, m.AllAuthors[selected])
|
||||||
|
batch = append(batch, cmd)
|
||||||
|
} else {
|
||||||
|
val := m.AuthorList.SelectedItem()
|
||||||
|
selectedItem, ok := val.(selectable)
|
||||||
|
if ok {
|
||||||
|
for i, v := range m.AllAuthors {
|
||||||
|
if v.text == selectedItem.text {
|
||||||
|
selected = i
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.AllAuthors[selected].selected = !m.AllAuthors[selected].selected
|
||||||
|
cmd = m.AuthorList.SetItem(selected, m.AllAuthors[selected])
|
||||||
|
batch = append(batch, cmd)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.SelectedAuthors = m.AllAuthors.GetSelected()
|
m.SelectedAuthors = m.AllAuthors.GetSelected()
|
||||||
m.AuthorList, cmd = m.AuthorList.Update(msg)
|
m.AuthorList, cmd = m.AuthorList.Update(msg)
|
||||||
return m, cmd
|
batch = append(batch, cmd)
|
||||||
|
return m, tea.Batch(batch...)
|
||||||
case repos:
|
case repos:
|
||||||
var cmd tea.Cmd
|
var cmd tea.Cmd
|
||||||
|
batch := []tea.Cmd{}
|
||||||
switch msg := msg.(type) {
|
switch msg := msg.(type) {
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
switch msg.String() {
|
switch msg.String() {
|
||||||
case "space", "enter":
|
case " ", "enter":
|
||||||
selected := m.RepoList.Cursor()
|
selected := 0
|
||||||
|
if !m.RepoList.IsFiltered() {
|
||||||
|
selected = m.RepoList.Index()
|
||||||
m.AllRepos[selected].selected = !m.AllRepos[selected].selected
|
m.AllRepos[selected].selected = !m.AllRepos[selected].selected
|
||||||
|
cmd = m.RepoList.SetItem(selected, m.AllRepos[selected])
|
||||||
|
batch = append(batch, cmd)
|
||||||
|
} else {
|
||||||
|
val := m.RepoList.SelectedItem()
|
||||||
|
selectedItem, ok := val.(selectable)
|
||||||
|
if ok {
|
||||||
|
for i, v := range m.AllRepos {
|
||||||
|
if v.text == selectedItem.text {
|
||||||
|
selected = i
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.AllRepos[selected].selected = !m.AllRepos[selected].selected
|
||||||
|
cmd = m.RepoList.SetItem(selected, m.AllRepos[selected])
|
||||||
|
batch = append(batch, cmd)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.SelectedRepos = m.AllRepos.GetSelected()
|
m.SelectedRepos = m.AllRepos.GetSelected()
|
||||||
m.RepoList, cmd = m.RepoList.Update(msg)
|
m.RepoList, cmd = m.RepoList.Update(msg)
|
||||||
return m, cmd
|
batch = append(batch, cmd)
|
||||||
|
return m, tea.Batch(batch...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user