prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

waka_footer.go (882B)


      1 package tui
      2 
      3 import (
      4 	"git.prime8.dev/moncheeta/prime8dev/internal/config"
      5 	"git.prime8.dev/moncheeta/prime8dev/internal/external"
      6 	tea "github.com/charmbracelet/bubbletea"
      7 )
      8 
      9 type wakaFooterMsg struct {
     10 	hours string
     11 	ok    bool
     12 }
     13 
     14 type wakaFooterInitMsg struct{}
     15 
     16 func initWakaFooterCmd() tea.Cmd {
     17 	return func() tea.Msg {
     18 		return wakaFooterInitMsg{}
     19 	}
     20 }
     21 
     22 func (m *portfolioModel) maybeLoadWakaFooterCmd() tea.Cmd {
     23 	if config.WakaTimeUser == "" || m.wakaLoaded || m.wakaLoading || m.wakaTime == nil {
     24 		return nil
     25 	}
     26 
     27 	m.wakaLoading = true
     28 	return fetchWakaFooterCmd(m.wakaTime)
     29 }
     30 
     31 func fetchWakaFooterCmd(service *external.WakaTime) tea.Cmd {
     32 	return func() tea.Msg {
     33 		stats, err := service.FetchTotal()
     34 		if err != nil || stats == nil {
     35 			return wakaFooterMsg{ok: false}
     36 		}
     37 
     38 		return wakaFooterMsg{hours: stats.AllTime.TotalText, ok: stats.AllTime.TotalText != ""}
     39 	}
     40 }