Render all errors at the main view level

This commit is contained in:
Christian Rocha 2020-05-22 16:06:48 -04:00 committed by Christian Muehlhaeuser
commit 4f250ebb81
2 changed files with 7 additions and 20 deletions

View file

@ -39,7 +39,6 @@ var (
// MSG
type pagerErrMsg error
type contentRenderedMsg string
type noteSavedMsg *charm.Markdown
@ -53,7 +52,6 @@ const (
)
type pagerModel struct {
err error
cc *charm.Client
viewport viewport.Model
state pagerState
@ -159,9 +157,6 @@ func pagerUpdate(msg boba.Msg, m pagerModel) (pagerModel, boba.Cmd) {
}
}
case pagerErrMsg:
m.err = msg
// Glow has rendered the content
case contentRenderedMsg:
m.setContent(string(msg))
@ -171,7 +166,7 @@ func pagerUpdate(msg boba.Msg, m pagerModel) (pagerModel, boba.Cmd) {
// after a resize
case terminalSizeMsg:
if msg.Error() != nil {
m.err = msg.Error()
// This will be caught at the top level
return m, nil
}
@ -261,12 +256,12 @@ func renderWithGlamour(m pagerModel, md string) boba.Cmd {
func saveDocumentNote(cc *charm.Client, id int, note string) boba.Cmd {
if cc == nil {
return func() boba.Msg {
return pagerErrMsg(errors.New("can't set note; no charm client"))
return errMsg(errors.New("can't set note; no charm client"))
}
}
return func() boba.Msg {
if err := cc.SetMarkdownNote(id, note); err != nil {
return pagerErrMsg(err)
return errMsg(err)
}
return noteSavedMsg(&charm.Markdown{ID: id, Note: note})
}

View file

@ -36,7 +36,6 @@ var (
// MSG
type stashErrMsg error
type stashSpinnerTickMsg struct{}
type gotStashMsg []*charm.Markdown
type gotNewsMsg []*charm.Markdown
@ -92,7 +91,6 @@ const (
type stashModel struct {
cc *charm.Client
err error
state stashState
documents []*markdown
spinner spinner.Model
@ -190,8 +188,6 @@ func stashUpdate(msg boba.Msg, m stashModel) (stashModel, boba.Cmd) {
)
switch msg := msg.(type) {
case stashErrMsg:
m.err = msg
// Stash results have come in from the server
case gotStashMsg:
@ -387,10 +383,6 @@ func stashUpdate(msg boba.Msg, m stashModel) (stashModel, boba.Cmd) {
// VIEW
func stashView(m stashModel) string {
if m.err != nil {
return "\n" + m.err.Error()
}
var s string
switch m.state {
case stashStateInit:
@ -615,7 +607,7 @@ func loadStash(m stashModel) boba.Cmd {
return func() boba.Msg {
stash, err := m.cc.GetStash(m.page)
if err != nil {
return stashErrMsg(err)
return errMsg(err)
}
return gotStashMsg(stash)
}
@ -625,7 +617,7 @@ func loadNews(m stashModel) boba.Cmd {
return func() boba.Msg {
news, err := m.cc.GetNews(1) // just fetch the first page
if err != nil {
return stashErrMsg(err)
return errMsg(err)
}
return gotNewsMsg(news)
}
@ -643,7 +635,7 @@ func loadMarkdown(cc *charm.Client, id int, t markdownType) boba.Cmd {
md, err = cc.GetNewsMarkdown(id)
}
if err != nil {
return stashErrMsg(err)
return errMsg(err)
}
return fetchedMarkdownMsg(&markdown{
markdownType: userMarkdown,
@ -656,7 +648,7 @@ func deleteStashedItem(cc *charm.Client, id int) boba.Cmd {
return func() boba.Msg {
err := cc.DeleteMarkdown(id)
if err != nil {
return stashErrMsg(err)
return errMsg(err)
}
return deletedStashedItemMsg(id)
}