summaryrefslogtreecommitdiff
path: root/internal/ui/table.go
diff options
context:
space:
mode:
authorPaul Bütow <1224732+snonux@users.noreply.github.com>2025-06-20 20:59:49 +0300
committerGitHub <noreply@github.com>2025-06-20 20:59:49 +0300
commit3670a1b978e84f74d210b2432fa6b10d3b29d4ce (patch)
treed51d28b85aef6f74a6ec4f0525dcdc4af2f6ea95 /internal/ui/table.go
parentbd44e7e81e9808c875340806eccefc043e27a8b7 (diff)
parent15fea05b5244f39e686f30770482b99687ac66c7 (diff)
Merge pull request #37 from snonux/codex/add-hotkey-to-set-random-due-date
Add random due date hotkey
Diffstat (limited to 'internal/ui/table.go')
-rw-r--r--internal/ui/table.go16
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",