Show the current tracker time if it is active.
All checks were successful
CI / test (push) Successful in 40s

This commit is contained in:
Justin Hawkins 2025-06-20 19:13:48 +02:00
parent c7798c5784
commit 4eaf1e73bb

View File

@ -53,6 +53,7 @@ type model struct {
timeData struct {
entries mite.TimeEntries
table table.Model
tracker *mite.TrackingTimeEntry
}
statusBarMessage string
windowWidth int
@ -116,6 +117,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.formData.customers = msg.Customers
m.formData.services = msg.Services
m.formData.projects = msg.Projects
m.timeData.tracker = msg.Tracker
m.fetchedData = true
slices.SortFunc(m.formData.customers, func(a, b mite.Customer) int { return strings.Compare(a.GetName(), b.GetName()) })
@ -315,6 +317,7 @@ type miteDataFetchedMsg struct {
Customers mite.Customers
Services mite.Services
Projects mite.Projects
Tracker *mite.TrackingTimeEntry
Error error
}
@ -327,12 +330,20 @@ func (m model) fetchMiteData() tea.Cmd {
cst, err2 := m.miteAPI.GetCustomers()
svc, err3 := m.miteAPI.GetServices()
pjt, err4 := m.miteAPI.GetProjects()
tt, err5 := m.miteAPI.GetTimeTracker()
var msgTT = &tt
if err5 == mite.ErrNoTracker {
err5 = nil
msgTT = nil
}
return miteDataFetchedMsg{
TimeEntries: te,
Customers: cst,
Services: svc,
Projects: pjt,
Tracker: msgTT,
Error: errors.Join(err1, err2, err3, err4),
start: t0,
}
@ -382,6 +393,7 @@ func (m model) View() string {
} else {
lhs.WriteString("\n")
}
if m.tuiMode == MODE_FORMENTRY {
lhs.WriteString("(esc) abort form\n")
lhs.WriteString("\n")
@ -390,6 +402,13 @@ func (m model) View() string {
lhs.WriteString("(tab) switch panes\n")
lhs.WriteString("(q)uit\n")
}
if m.timeData.tracker != nil {
activeTime := time.Since(m.timeData.tracker.Since).Truncate(time.Minute).String()
activeTime = strings.Replace(activeTime, "0s", "", 1)
lhs.WriteString("\nTracker active: " + activeTime + "\n")
}
if m.tuiMode == MODE_TIMEENTRIES {
rhsS = db
}