mirror of
https://github.com/charmbracelet/glow
synced 2024-12-13 13:42:34 +00:00
Fine tuning + subtle behavioral adjustments to spinners + status messages
This commit is contained in:
parent
64da53ede6
commit
8d7b614688
3 changed files with 35 additions and 21 deletions
2
go.mod
2
go.mod
|
@ -4,7 +4,7 @@ go 1.13
|
|||
|
||||
require (
|
||||
github.com/alecthomas/chroma v0.8.0 // indirect
|
||||
github.com/charmbracelet/bubbles v0.7.5
|
||||
github.com/charmbracelet/bubbles v0.7.6-0.20201212003737-11f56f9b6b3f
|
||||
github.com/charmbracelet/bubbletea v0.12.2
|
||||
github.com/charmbracelet/charm v0.8.2
|
||||
github.com/charmbracelet/glamour v0.2.1-0.20200829234023-6c0e29c4dae5
|
||||
|
|
6
go.sum
6
go.sum
|
@ -43,8 +43,8 @@ github.com/calmh/randomart v1.1.0 h1:evl+iwc10LXtHdMZhzLxmsCQVmWnkXs44SbC6Uk0Il8
|
|||
github.com/calmh/randomart v1.1.0/go.mod h1:DQUbPVyP+7PAs21w/AnfMKG5NioxS3TbZ2F9MSK/jFM=
|
||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||
github.com/charmbracelet/bubbles v0.6.0/go.mod h1:MxySU+YRGbAhZQJavZlW2os+fIeOW69MI3iXqA+2/WA=
|
||||
github.com/charmbracelet/bubbles v0.7.5 h1:N6TiahuRt2iGNE5gYxKBQ5/C6Lc8xxSp5LY9QJ09mS4=
|
||||
github.com/charmbracelet/bubbles v0.7.5/go.mod h1:IRTORFvhEI6OUH7WhN2Ks8Z8miNGimk1BE6cmHijOkM=
|
||||
github.com/charmbracelet/bubbles v0.7.6-0.20201212003737-11f56f9b6b3f h1:6g/MQxdygWh8Ga0c5uR1Z8uz5wa3uaQjW0Hive/XBWw=
|
||||
github.com/charmbracelet/bubbles v0.7.6-0.20201212003737-11f56f9b6b3f/go.mod h1:0D4XRYK0tjo8JMvflz1obpVcOikNZSG46SFauoZj22s=
|
||||
github.com/charmbracelet/bubbletea v0.10.3/go.mod h1:fB1bVmlaXBYYv4G0jtuGSP/m8V2sMM97pq7QqQnubWI=
|
||||
github.com/charmbracelet/bubbletea v0.10.5/go.mod h1:Nay5oWkkSZvc6E/be+W3nDFXAsVytNUNKV9jbXcuae0=
|
||||
github.com/charmbracelet/bubbletea v0.12.2 h1:y9Yo2Pv8tcm3mAJsWONGsmHhzrbNxJVxpVtemikxE9A=
|
||||
|
@ -241,8 +241,6 @@ github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 h1:G04eS0JkA
|
|||
github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94/go.mod h1:b18R55ulyQ/h3RaWyloPyER7fWQVZvimKKhnI5OfrJQ=
|
||||
github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI=
|
||||
github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
|
||||
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
|
||||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
github.com/segmentio/ksuid v1.0.3 h1:FoResxvleQwYiPAVKe1tMUlEirodZqlqglIuFsdDntY=
|
||||
github.com/segmentio/ksuid v1.0.3/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE=
|
||||
|
|
48
ui/stash.go
48
ui/stash.go
|
@ -26,6 +26,7 @@ const (
|
|||
stashViewTopPadding = 5 // logo, status bar, gaps
|
||||
stashViewBottomPadding = 3 // pagination and gaps, but not help
|
||||
stashViewHorizontalPadding = 6
|
||||
stashedStatusMessage = "Stashed!"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -111,19 +112,20 @@ const (
|
|||
)
|
||||
|
||||
type stashModel struct {
|
||||
common *commonModel
|
||||
err error
|
||||
spinner spinner.Model
|
||||
noteInput textinput.Model
|
||||
filterInput textinput.Model
|
||||
stashFullyLoaded bool // have we loaded all available stashed documents from the server?
|
||||
viewState stashViewState
|
||||
filterState filterState
|
||||
selectionState selectionState
|
||||
showFullHelp bool
|
||||
showStatusMessage bool
|
||||
statusMessage string
|
||||
statusMessageTimer *time.Timer
|
||||
common *commonModel
|
||||
err error
|
||||
spinner spinner.Model
|
||||
noteInput textinput.Model
|
||||
filterInput textinput.Model
|
||||
stashFullyLoaded bool // have we loaded all available stashed documents from the server?
|
||||
viewState stashViewState
|
||||
filterState filterState
|
||||
selectionState selectionState
|
||||
showFullHelp bool
|
||||
showStatusMessage bool
|
||||
statusMessage string
|
||||
statusMessageTimer *time.Timer
|
||||
stashStatusMessageQueued bool
|
||||
|
||||
// Available document sections we can cycle through. We use a slice, rather
|
||||
// than a map, because order is important.
|
||||
|
@ -419,7 +421,7 @@ func newStashModel(common *commonModel) stashModel {
|
|||
sp.Spinner = spinner.Line
|
||||
sp.ForegroundColor = lib.SpinnerColor.String()
|
||||
sp.HideFor = time.Millisecond * 50
|
||||
sp.MinimumLifetime = time.Millisecond * 180
|
||||
sp.MinimumLifetime = time.Millisecond * 250
|
||||
sp.Start()
|
||||
|
||||
ni := textinput.NewModel()
|
||||
|
@ -558,6 +560,13 @@ func (m stashModel) update(msg tea.Msg) (stashModel, tea.Cmd) {
|
|||
newSpinnerModel, cmd := m.spinner.Update(msg)
|
||||
m.spinner = newSpinnerModel
|
||||
cmds = append(cmds, cmd)
|
||||
} else if !stashing && !spinnerVisible && m.stashStatusMessageQueued {
|
||||
m.stashStatusMessageQueued = false
|
||||
cmds = append(cmds, m.newStatusMessage(stashedStatusMessage))
|
||||
}
|
||||
|
||||
if spinnerVisible && m.showStatusMessage {
|
||||
m.hideStatusMessage()
|
||||
}
|
||||
|
||||
// A note was set on a document. This may have happened in the pager so
|
||||
|
@ -572,7 +581,14 @@ func (m stashModel) update(msg tea.Msg) (stashModel, tea.Cmd) {
|
|||
// Note: mechanical stuff related to stash success is handled in the parent
|
||||
// update function.
|
||||
case stashSuccessMsg:
|
||||
cmds = append(cmds, m.newStatusMessage("Stashed!"))
|
||||
m.spinner.Finish()
|
||||
if m.spinner.Visible() {
|
||||
// We want to show the 'stashed!' status message, but need to wait
|
||||
// until the spinner goes away first.
|
||||
m.stashStatusMessageQueued = true
|
||||
} else {
|
||||
cmds = append(cmds, m.newStatusMessage(stashedStatusMessage))
|
||||
}
|
||||
|
||||
// Note: mechanical stuff related to stash failure is handled in the parent
|
||||
// update function.
|
||||
|
@ -961,7 +977,7 @@ func (m stashModel) view() string {
|
|||
case stashStateReady:
|
||||
|
||||
loadingIndicator := " "
|
||||
if !m.localOnly() && (!m.loadingDone() || m.spinner.Visible()) {
|
||||
if !m.loadingDone() || m.spinner.Visible() {
|
||||
loadingIndicator = m.spinner.View()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue