From 15fea05b5244f39e686f30770482b99687ac66c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20B=C3=BCtow?= <1224732+snonux@users.noreply.github.com> Date: Fri, 20 Jun 2025 20:59:40 +0300 Subject: Add random due date hotkey --- internal/ui/table.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'internal/ui/table.go') diff --git a/internal/ui/table.go b/internal/ui/table.go index ad64378..0fef7e3 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", -- cgit v1.2.3