package shelves
|
|
|
|
import (
|
|
"git.brettb.xyz/goinv/client/internal/ui/utils"
|
|
"github.com/gdamore/tcell/v2"
|
|
"github.com/rivo/tview"
|
|
)
|
|
|
|
func (a *Shelves) InputHandler() func(*tcell.EventKey, func(tview.Primitive)) {
|
|
return a.WrapInputHandler(func(event *tcell.EventKey, setFocus func(tview.Primitive)) {
|
|
a.logger.Sugar().Debugf("assets event %v received", event)
|
|
|
|
if a.progressDialog.IsDisplay() {
|
|
setFocus(a.progressDialog)
|
|
return
|
|
}
|
|
|
|
if a.errorDialog.HasFocus() {
|
|
if errorHandler := a.errorDialog.InputHandler(); errorHandler != nil {
|
|
errorHandler(event, setFocus)
|
|
}
|
|
}
|
|
|
|
if a.messageDialog.HasFocus() {
|
|
if messageHandler := a.messageDialog.InputHandler(); messageHandler != nil {
|
|
messageHandler(event, setFocus)
|
|
}
|
|
}
|
|
|
|
if a.confirmDialog.HasFocus() {
|
|
if confirmHandler := a.confirmDialog.InputHandler(); confirmHandler != nil {
|
|
confirmHandler(event, setFocus)
|
|
}
|
|
}
|
|
|
|
if a.createDialog.HasFocus() {
|
|
if createHandler := a.createDialog.InputHandler(); createHandler != nil {
|
|
createHandler(event, setFocus)
|
|
}
|
|
}
|
|
|
|
if a.editDialog.HasFocus() {
|
|
if editHandler := a.editDialog.InputHandler(); editHandler != nil {
|
|
editHandler(event, setFocus)
|
|
}
|
|
}
|
|
|
|
if a.cmdDialog.HasFocus() {
|
|
if cmdHandler := a.cmdDialog.InputHandler(); cmdHandler != nil {
|
|
cmdHandler(event, setFocus)
|
|
}
|
|
}
|
|
|
|
if a.shelfTable.HasFocus() {
|
|
if event.Rune() == utils.CommandMenuKey.Rune() {
|
|
a.cmdDialog.Display()
|
|
} else {
|
|
if tableHandler := a.shelfTable.InputHandler(); tableHandler != nil {
|
|
tableHandler(event, setFocus)
|
|
}
|
|
}
|
|
}
|
|
|
|
setFocus(a)
|
|
})
|
|
}
|