feat: add navigation and window size handlers with corresponding tests

This commit is contained in:
Stevan Freeborn
2025-12-29 13:45:28 -06:00
parent 3bc730db87
commit 3d3877ca41
17 changed files with 1012 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
package handlers
import (
"github.com/StevanFreeborn/term-tier/internal/core"
"github.com/StevanFreeborn/term-tier/internal/state"
tea "github.com/charmbracelet/bubbletea"
)
type KeyMsgHandler interface {
KeysHandled() []string
Description() string
Match(s state.State, msg tea.KeyMsg) bool
Handle(s state.State, msg tea.KeyMsg) tea.Cmd
}
func GetAllKeyHandlers(saver core.Saver) []KeyMsgHandler {
return []KeyMsgHandler{
NewTextInputHandler(),
NewQuitHandler(),
NewUpNavigationHandler(),
NewDownNavigationHandler(),
NewLeftNavigationHandler(),
NewRightNavigationHandler(),
NewDeleteItemHandler(),
NewAddItemHandler(),
NewUpdateItemHandler(),
NewSelectItemHandler(),
NewLoadHandler(saver),
NewSaveHandler(saver),
NewHelpHandler(),
}
}