pelican/internal/ui/statusbar.go
Dan Anglin eb2ed4060a
Some checks failed
/ test (pull_request) Successful in 33s
/ lint (pull_request) Has been cancelled
refactor: variable renaming
2024-01-13 12:38:37 +00:00

50 lines
746 B
Go

package ui
import (
"fmt"
"time"
"github.com/rivo/tview"
)
type statusbarLogLevel int
const (
infoLevel statusbarLogLevel = iota
errorLevel
)
type statusbar struct {
*tview.TextView
duration time.Duration
}
func newStatusbar() *statusbar {
value := statusbar{
TextView: tview.NewTextView(),
duration: 5 * time.Second,
}
value.SetDynamicColors(true).SetBorder(false).SetBorderPadding(0, 0, 1, 1)
return &value
}
func (s *statusbar) displayMessage(level statusbarLogLevel, message string) {
go func() {
var colour string
switch level {
case infoLevel:
colour = "green"
case errorLevel:
colour = "red"
}
fmt.Fprintf(s, "[%s::b]%s[-:-:-:-]", colour, message)
time.Sleep(s.duration)
s.Clear()
}()
}