diff options
Diffstat (limited to 'internal/tui/timer_box.go')
-rw-r--r-- | internal/tui/timer_box.go | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/internal/tui/timer_box.go b/internal/tui/timer_box.go index 408c3b5..1a88870 100644 --- a/internal/tui/timer_box.go +++ b/internal/tui/timer_box.go @@ -50,7 +50,9 @@ type TimerBoxModel struct { // NewTimerBoxModel creates a new timer box model func NewTimerBoxModel() TimerBoxModel { - return TimerBoxModel{} + return TimerBoxModel{ + currentTime: time.Now(), + } } // View renders the timer box @@ -114,10 +116,23 @@ func (m TimerBoxModel) renderActiveTimer() string { func (m TimerBoxModel) renderInactiveTimer() string { content := "⚪ Last Timer (Inactive)\n\n" - content += "No active timer\n\n" - content += "Ready to start tracking time.\n" - content += "Use 'p' to punch in, or select\n" - content += "a client/project from the left." + timerLine := fmt.Sprintf("Duration: %s", FormatDuration(m.timerInfo.Duration)) + content += inactiveTimerStyle.Render(timerLine) + "\n\n" + + if m.timerInfo.ProjectName != "" { + content += inactiveTimerStyle.Render(fmt.Sprintf("Project: %s / %s", m.timerInfo.ClientName, m.timerInfo.ProjectName)) + "\n" + } else { + content += inactiveTimerStyle.Render(fmt.Sprintf("Client: %s", m.timerInfo.ClientName)) + "\n" + } + + content += inactiveTimerStyle.Render(fmt.Sprintf("Started: %s", m.timerInfo.StartTime.Local().Format("3:04 PM"))) + "\n" + + if m.timerInfo.Description != nil { + content += "\n" + inactiveTimerStyle.Render(fmt.Sprintf("Description: %s", *m.timerInfo.Description)) + "\n" + } + if m.timerInfo.BillableRate != nil { + content += inactiveTimerStyle.Render(fmt.Sprintf("Rate: $%.2f/hr", *m.timerInfo.BillableRate)) + "\n" + } return content } |