summaryrefslogtreecommitdiffhomepage
path: root/packages/tui/internal/commands/command.go
diff options
context:
space:
mode:
Diffstat (limited to 'packages/tui/internal/commands/command.go')
-rw-r--r--packages/tui/internal/commands/command.go20
1 files changed, 8 insertions, 12 deletions
diff --git a/packages/tui/internal/commands/command.go b/packages/tui/internal/commands/command.go
index 6f628ae31..12378c0b2 100644
--- a/packages/tui/internal/commands/command.go
+++ b/packages/tui/internal/commands/command.go
@@ -1,6 +1,7 @@
package commands
import (
+ "encoding/json"
"slices"
"strings"
@@ -106,17 +107,6 @@ func (k Command) Matches(msg tea.KeyPressMsg, leader bool) bool {
return false
}
-func (k Command) FromConfig(config *client.ConfigInfo) Command {
- if config.Keybinds == nil {
- return k
- }
- keybinds := *config.Keybinds
- if keybind, ok := keybinds[string(k.Name)]; ok {
- k.Keybindings = parseBindings(keybind)
- }
- return k
-}
-
func parseBindings(bindings ...string) []Keybinding {
var parsedBindings []Keybinding
for _, binding := range bindings {
@@ -278,8 +268,14 @@ func LoadFromConfig(config *client.ConfigInfo) CommandRegistry {
},
}
registry := make(CommandRegistry)
+ keybinds := map[string]string{}
+ marshalled, _ := json.Marshal(*config.Keybinds)
+ json.Unmarshal(marshalled, &keybinds)
for _, command := range defaults {
- registry[command.Name] = command.FromConfig(config)
+ if keybind, ok := keybinds[string(command.Name)]; ok {
+ command.Keybindings = parseBindings(keybind)
+ }
+ registry[command.Name] = command
}
return registry
}