diff options
Diffstat (limited to 'internal/ui/table.go')
| -rw-r--r-- | internal/ui/table.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/ui/table.go b/internal/ui/table.go index fc1540c..bd1d4ca 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -2,6 +2,7 @@ package ui import ( "fmt" + "math/rand" "strconv" "strings" "time" @@ -16,6 +17,10 @@ import ( "tasksamurai/internal/task" ) +func init() { + rand.Seed(time.Now().UnixNano()) +} + // Model wraps a Bubble Tea table.Model to display tasks. type Model struct { tbl atable.Model @@ -236,6 +241,16 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m, nil } } + case "r": + if row := m.tbl.SelectedRow(); row != nil { + idStr := ansi.Strip(row[0]) + if id, err := strconv.Atoi(idStr); err == nil { + days := rand.Intn(31) + 7 + due := time.Now().AddDate(0, 0, days).Format("2006-01-02") + task.SetDueDate(id, due) + m.reload() + } + } case "a": if row := m.tbl.SelectedRow(); row != nil { idStr := ansi.Strip(row[0]) @@ -281,6 +296,7 @@ func (m Model) View() string { "s: toggle start/stop", "D: mark task done", "d: set due date", + "r: random due date", "a: annotate task", "A: replace annotations", "q: quit", |
