summaryrefslogtreecommitdiff
path: root/internal/tui/timer_box.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/tui/timer_box.go')
-rw-r--r--internal/tui/timer_box.go25
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
}