55 lines
934 B
Go
55 lines
934 B
Go
package filter
|
|
|
|
import (
|
|
"github.com/charmbracelet/bubbles/key"
|
|
"github.com/remogatto/sugarfoam/components/group"
|
|
"github.com/remogatto/sugarfoam/components/viewport"
|
|
)
|
|
|
|
type keyBindings struct {
|
|
group *group.Model
|
|
|
|
quit, enter key.Binding
|
|
}
|
|
|
|
func (k *keyBindings) ShortHelp() []key.Binding {
|
|
keys := make([]key.Binding, 0)
|
|
|
|
current := k.group.Current()
|
|
|
|
switch item := current.(type) {
|
|
case *viewport.Model:
|
|
keys = append(
|
|
keys,
|
|
item.KeyMap.Up,
|
|
item.KeyMap.Down,
|
|
)
|
|
}
|
|
|
|
keys = append(
|
|
keys,
|
|
k.quit,
|
|
)
|
|
|
|
return keys
|
|
}
|
|
|
|
func (k keyBindings) FullHelp() [][]key.Binding {
|
|
return [][]key.Binding{
|
|
{
|
|
k.quit,
|
|
},
|
|
}
|
|
}
|
|
|
|
func newBindings(g *group.Model) *keyBindings {
|
|
return &keyBindings{
|
|
group: g,
|
|
quit: key.NewBinding(
|
|
key.WithKeys("esc"), key.WithHelp("esc", "Quit app"),
|
|
),
|
|
enter: key.NewBinding(
|
|
key.WithKeys("enter"), key.WithHelp("enter", "Quit app and return the results"),
|
|
),
|
|
}
|
|
}
|