keys.go

 1package logs
 2
 3import (
 4	"github.com/charmbracelet/bubbles/v2/key"
 5)
 6
 7type KeyMap struct {
 8	Back key.Binding
 9}
10
11func DefaultKeyMap() KeyMap {
12	return KeyMap{
13		Back: key.NewBinding(
14			key.WithKeys("esc", "backspace"),
15			key.WithHelp("esc/backspace", "back to chat"),
16		),
17	}
18}
19
20// KeyBindings implements layout.KeyMapProvider
21func (k KeyMap) KeyBindings() []key.Binding {
22	return []key.Binding{
23		k.Back,
24	}
25}
26
27// FullHelp implements help.KeyMap.
28func (k KeyMap) FullHelp() [][]key.Binding {
29	m := [][]key.Binding{}
30	slice := k.KeyBindings()
31	for i := 0; i < len(slice); i += 4 {
32		end := min(i+4, len(slice))
33		m = append(m, slice[i:end])
34	}
35	return m
36}
37
38// ShortHelp implements help.KeyMap.
39func (k KeyMap) ShortHelp() []key.Binding {
40	return []key.Binding{
41		k.Back,
42	}
43}