keys.go

 1package chat
 2
 3import (
 4	"github.com/charmbracelet/bubbles/v2/key"
 5)
 6
 7type KeyMap struct {
 8	NewSession    key.Binding
 9	AddAttachment key.Binding
10	Cancel        key.Binding
11	Tab           key.Binding
12}
13
14func DefaultKeyMap() KeyMap {
15	return KeyMap{
16		NewSession: key.NewBinding(
17			key.WithKeys("ctrl+n"),
18			key.WithHelp("ctrl+n", "new session"),
19		),
20		AddAttachment: key.NewBinding(
21			key.WithKeys("ctrl+f"),
22			key.WithHelp("ctrl+f", "add attachment"),
23		),
24		Cancel: key.NewBinding(
25			key.WithKeys("esc"),
26			key.WithHelp("esc", "cancel"),
27		),
28		Tab: key.NewBinding(
29			key.WithKeys("tab"),
30			key.WithHelp("tab", "change focus"),
31		),
32	}
33}