wip: refactoring tui

This commit is contained in:
adamdottv 2025-06-04 09:20:42 -05:00
parent 0b565b18c4
commit 01050a430f
No known key found for this signature in database
GPG key ID: 9CB48779AF150E75
60 changed files with 115 additions and 115 deletions

View file

@ -0,0 +1,35 @@
package layout
import (
"reflect"
"github.com/charmbracelet/bubbles/key"
tea "github.com/charmbracelet/bubbletea"
)
type Focusable interface {
Focus() tea.Cmd
Blur() tea.Cmd
IsFocused() bool
}
type Sizeable interface {
SetSize(width, height int) tea.Cmd
GetSize() (int, int)
}
type Bindings interface {
BindingKeys() []key.Binding
}
func KeyMapToSlice(t any) (bindings []key.Binding) {
typ := reflect.TypeOf(t)
if typ.Kind() != reflect.Struct {
return nil
}
for i := range typ.NumField() {
v := reflect.ValueOf(t).Field(i)
bindings = append(bindings, v.Interface().(key.Binding))
}
return
}