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) }) }