Add header and footer to pager example

This commit is contained in:
Christian Rocha
2020-06-17 15:00:13 -04:00
parent 8539cfcf8c
commit 4d68ed07ef
3 changed files with 23 additions and 10 deletions

View File

@@ -9,6 +9,11 @@ import (
tea "github.com/charmbracelet/bubbletea"
)
const (
viewportTopMargin = 2
viewportBottomMargin = 2
)
func main() {
// Load some text to render
@@ -88,14 +93,17 @@ func update(msg tea.Msg, mdl tea.Model) (tea.Model, tea.Cmd) {
m.err = msg.Error()
break
}
viewportVerticalMargins := viewportTopMargin + viewportBottomMargin
w, h := msg.Size()
if !m.ready {
m.viewport = viewport.NewModel(w, h)
m.viewport = viewport.NewModel(w, h-viewportVerticalMargins)
m.viewport.SetContent(m.content)
m.ready = true
} else {
m.viewport.Width = w
m.viewport.Height = h
m.viewport.Height = h - viewportVerticalMargins
}
case resizeMsg:
@@ -110,7 +118,12 @@ func view(mdl tea.Model) string {
if m.err != nil {
return "\nError:" + m.err.Error()
} else if m.ready {
return "\n" + viewport.View(m.viewport)
return fmt.Sprintf(
"── Mr. Pager ──\n\n%s\n\n── %3.f%% ──",
viewport.View(m.viewport),
m.viewport.ScrollPercent()*100,
)
}
return "\nInitalizing..."
}