feat: update implementation to main

Raphael Amorim created

Change summary

internal/tui/components/chat/chat.go          |  2 +-
internal/tui/components/chat/editor/editor.go |  9 +--------
internal/tui/components/chat/editor/keys.go   |  9 +++++++++
internal/tui/components/core/layout/layout.go |  2 --
internal/tui/components/core/list/keys.go     | 16 ++++++++++++++++
5 files changed, 27 insertions(+), 11 deletions(-)

Detailed changes

internal/tui/components/chat/chat.go 🔗

@@ -500,6 +500,6 @@ func (m *messageListCmp) IsFocused() bool {
 }
 
 func (m *messageListCmp) Bindings() []key.Binding {
-	bindings := layout.KeyMapToSlice(m.defaultListKeyMap)
+	bindings := m.defaultListKeyMap.KeyBindings()
 	return bindings
 }

internal/tui/components/chat/editor/editor.go 🔗

@@ -18,7 +18,6 @@ import (
 	"github.com/charmbracelet/crush/internal/session"
 	"github.com/charmbracelet/crush/internal/tui/components/chat"
 	"github.com/charmbracelet/crush/internal/tui/components/completions"
-	"github.com/charmbracelet/crush/internal/tui/components/core/layout"
 	"github.com/charmbracelet/crush/internal/tui/components/dialogs"
 	"github.com/charmbracelet/crush/internal/tui/components/dialogs/filepicker"
 	"github.com/charmbracelet/crush/internal/tui/components/dialogs/quit"
@@ -49,12 +48,6 @@ type editorCmp struct {
 	isCompletionsOpen     bool
 }
 
-type DeleteAttachmentKeyMaps struct {
-	AttachmentDeleteMode key.Binding
-	Escape               key.Binding
-	DeleteAllAttachments key.Binding
-}
-
 var DeleteKeyMaps = DeleteAttachmentKeyMaps{
 	AttachmentDeleteMode: key.NewBinding(
 		key.WithKeys("ctrl+r"),
@@ -372,7 +365,7 @@ func (c *editorCmp) IsFocused() bool {
 }
 
 func (c *editorCmp) Bindings() []key.Binding {
-	return layout.KeyMapToSlice(c.keyMap)
+	return c.keyMap.KeyBindings()
 }
 
 func NewEditorCmp(app *app.App) util.Model {

internal/tui/components/chat/editor/keys.go 🔗

@@ -27,6 +27,15 @@ func DefaultEditorKeyMap() EditorKeyMap {
 	}
 }
 
+// KeyBindings implements layout.KeyMapProvider
+func (k EditorKeyMap) KeyBindings() []key.Binding {
+	return []key.Binding{
+		k.AddFile,
+		k.SendMessage,
+		k.OpenEditor,
+	}
+}
+
 type DeleteAttachmentKeyMaps struct {
 	AttachmentDeleteMode key.Binding
 	Escape               key.Binding

internal/tui/components/core/list/keys.go 🔗

@@ -50,4 +50,20 @@ func DefaultKeyMap() KeyMap {
 			key.WithKeys("shift+g", "end"),
 		),
 	}
+}
+
+// KeyBindings implements layout.KeyMapProvider
+func (k KeyMap) KeyBindings() []key.Binding {
+	return []key.Binding{
+		k.Down,
+		k.Up,
+		k.NDown,
+		k.NUp,
+		k.DownOneItem,
+		k.UpOneItem,
+		k.HalfPageDown,
+		k.HalfPageUp,
+		k.Home,
+		k.End,
+	}
 }