diff --git a/ui/windows/msgerror/handlers.go b/ui/windows/msgerror/handlers.go index a8b3432..802049b 100644 --- a/ui/windows/msgerror/handlers.go +++ b/ui/windows/msgerror/handlers.go @@ -27,11 +27,15 @@ func handleMsgErrorCmd(mi interface{}, c cmd.Command) (bool, []tea.Cmd) { var m *Model = mi.(*Model) var cmds []tea.Cmd - m.err = c.GetArg("error").(error) - if m.err != nil { - m.viewport.SetContent(m.err.Error()) - m.tk.CacheView(m) + if err := c.GetArg("error"); err != nil { + m.errs = append(m.errs, err.(error)) } + if errs := c.GetArg("errors"); errs != nil { + m.errs = append(m.errs, errs.([]error)...) + } + + m.setErrorContent() + m.tk.CacheView(m) return true, cmds } @@ -40,7 +44,7 @@ func handleWinCloseCmd(mi interface{}, c cmd.Command) (bool, []tea.Cmd) { var cmds []tea.Cmd if c.Target == WIN_ID { - m.err = nil + m.errs = []error{} return true, cmds } diff --git a/ui/windows/msgerror/msgerror.go b/ui/windows/msgerror/msgerror.go index 65c35bd..373dc97 100644 --- a/ui/windows/msgerror/msgerror.go +++ b/ui/windows/msgerror/msgerror.go @@ -30,7 +30,7 @@ type Model struct { a *aggregator.Aggregator - err error + errs []error viewcache string viewcacheTextareaXY []int @@ -50,7 +50,7 @@ func NewModel(c *ctx.Ctx) Model { ), xywh: [4]int{0, 0, 0, 0}, - err: nil, + errs: []error{}, viewcache: "", viewcacheTextareaXY: []int{0, 0, 0, 0}, @@ -77,12 +77,19 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { var vcmd tea.Cmd - m.ctx.Logger.Debugf("ERROR IS: %v\n", m.err) - if m.err != nil { - m.viewport.SetContent(m.err.Error()) - } + m.setErrorContent() m.viewport, vcmd = m.viewport.Update(msg) cmds = append(cmds, vcmd) return m, tea.Batch(cmds...) } + +func (m *Model) setErrorContent() { + if len(m.errs) > 0 { + var tmp string = "" + for _, err := range m.errs { + tmp += err.Error() + "\n" + } + m.viewport.SetContent(tmp) + } +}