fix(key): Unbound keys should be disabled

* fix condition for #188
This is a fix of https://github.com/charmbracelet/bubbles/pull/188
Unbound keys has nil keys and they are not Enabled
This commit is contained in:
Hironao OTSUBO 2022-07-11 23:45:18 +09:00 committed by GitHub
parent 746ec595c3
commit e49b5573bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 1 deletions

View File

@ -106,7 +106,7 @@ func (b Binding) Help() Help {
// keybindings won't be activated and won't show up in help. Keybindings are // keybindings won't be activated and won't show up in help. Keybindings are
// enabled by default. // enabled by default.
func (b Binding) Enabled() bool { func (b Binding) Enabled() bool {
return !b.disabled || b.keys == nil return !b.disabled && b.keys != nil
} }
// SetEnabled enables or disables the keybinding. // SetEnabled enables or disables the keybinding.

26
key/key_test.go Normal file
View File

@ -0,0 +1,26 @@
package key
import (
"testing"
)
func TestBinding_Enabled(t *testing.T) {
binding := NewBinding(
WithKeys("k", "up"),
WithHelp("↑/k", "move up"),
)
if !binding.Enabled() {
t.Errorf("expected key to be Enabled")
}
binding.SetEnabled(false)
if binding.Enabled() {
t.Errorf("expected key not to be Enabled")
}
binding.SetEnabled(true)
binding.Unbind()
if binding.Enabled() {
t.Errorf("expected key not to be Enabled")
}
}