Fetch and render news markdown

This commit is contained in:
Christian Rocha 2020-05-22 15:31:54 -04:00 committed by Christian Muehlhaeuser
commit 9bee37ee93
4 changed files with 19 additions and 12 deletions

2
go.mod
View file

@ -4,7 +4,7 @@ go 1.13
require (
github.com/charmbracelet/boba v0.6.3
github.com/charmbracelet/charm v0.4.2-0.20200522154917-0a1ba5ae4e28
github.com/charmbracelet/charm v0.4.2-0.20200522192006-ce78aabf4b25
github.com/charmbracelet/glamour v0.2.0
github.com/charmbracelet/tea v0.3.0
github.com/charmbracelet/teaparty v0.0.0-20200504225426-da64445a0e0d

4
go.sum
View file

@ -18,8 +18,8 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf
github.com/charmbracelet/boba v0.6.1/go.mod h1:xqhji08CbPctzbvCi/GzmNvIFOhnWJnkl9N8T65gnK0=
github.com/charmbracelet/boba v0.6.3 h1:3YisdYQ35tieYXbfpf8acdVN6d1DJHGKZc5kDJNkjg0=
github.com/charmbracelet/boba v0.6.3/go.mod h1:9TUvThAOqjXWYZGOrZ4qyluTrmodxb8SqNR81BJluOU=
github.com/charmbracelet/charm v0.4.2-0.20200522154917-0a1ba5ae4e28 h1:qwEm+kLHiDuqZPMZIEDjYRdXYKfn7B9ZRBPI/ERTMrA=
github.com/charmbracelet/charm v0.4.2-0.20200522154917-0a1ba5ae4e28/go.mod h1:xZgRIZCddA0IAmbsR4zk4HHCj4Z1PLvQcqcZqtk0Pzo=
github.com/charmbracelet/charm v0.4.2-0.20200522192006-ce78aabf4b25 h1:ZQUYsUAskkhwkMOq1I7NlrfDwHtCwi5HspFa5O+Z4ug=
github.com/charmbracelet/charm v0.4.2-0.20200522192006-ce78aabf4b25/go.mod h1:xZgRIZCddA0IAmbsR4zk4HHCj4Z1PLvQcqcZqtk0Pzo=
github.com/charmbracelet/glamour v0.2.0 h1:mTgaiNiumpqTZp3qVM6DH9UB0NlbY17wejoMf1kM8Pg=
github.com/charmbracelet/glamour v0.2.0/go.mod h1:UA27Kwj3QHialP74iU6C+Gpc8Y7IOAKupeKMLLBURWM=
github.com/charmbracelet/tea v0.2.0/go.mod h1:lADjwO2mMub9qvXSCA9vAkabVWO0HeUrv4uO/lG3C+k=

View file

@ -40,7 +40,7 @@ type stashErrMsg error
type stashSpinnerTickMsg struct{}
type gotStashMsg []*charm.Markdown
type gotNewsMsg []*charm.Markdown
type gotStashedItemMsg *markdown
type fetchedMarkdownMsg *markdown
type deletedStashedItemMsg int
// MODEL
@ -273,8 +273,9 @@ func stashUpdate(msg boba.Msg, m stashModel) (stashModel, boba.Cmd) {
// that comes back in the main update function.
m.state = stashStateLoadingDocument
doc := m.documents[m.markdownIndex()]
cmds = append(cmds,
loadStashedItem(m.cc, doc.ID, doc.markdownType),
loadMarkdown(m.cc, doc.ID, doc.markdownType),
spinner.Tick(m.spinner),
)
@ -627,14 +628,22 @@ func loadNews(m stashModel) boba.Cmd {
}
}
func loadStashedItem(cc *charm.Client, id int, t markdownType) boba.Cmd {
func loadMarkdown(cc *charm.Client, id int, t markdownType) boba.Cmd {
return func() boba.Msg {
md, err := cc.GetStashMarkdown(id)
var (
md *charm.Markdown
err error
)
if t == userMarkdown {
md, err = cc.GetStashMarkdown(id)
} else {
md, err = cc.GetNewsMarkdown(id)
}
if err != nil {
return stashErrMsg(err)
}
return gotStashedItemMsg(&markdown{
markdownType: t,
return fetchedMarkdownMsg(&markdown{
markdownType: userMarkdown,
Markdown: md,
})
}

View file

@ -232,9 +232,7 @@ func update(msg boba.Msg, mdl boba.Model) (boba.Model, boba.Cmd) {
m.pager.cc = msg
cmds = append(cmds, cmd)
case gotStashedItemMsg:
// Loaded markdown document from the server. We'll render it before
// loading it into the pager.
case fetchedMarkdownMsg:
m.pager.currentDocument = msg
cmds = append(cmds, renderWithGlamour(m.pager, msg.Body))