From d61ccf074f618c2bb8c516a1dc8996c3965a41ec Mon Sep 17 00:00:00 2001 From: Shiva Gupta Date: Thu, 8 Jan 2026 14:40:52 +0530 Subject: [PATCH] feat(AddTaskDialog): add DateTimePicker for wait field - Replace DatePicker with DateTimePicker for wait field in AddTaskDialog - Add wait to dateTimeFields array in tests - Support both date-only and datetime formats for wait Contributes: #325 --- backend/utils/tw/add_task.go | 6 ++++- .../HomeComponents/Tasks/AddTaskDialog.tsx | 22 ++++++++++++++----- .../Tasks/__tests__/AddTaskDialog.test.tsx | 6 ++++- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/backend/utils/tw/add_task.go b/backend/utils/tw/add_task.go index 1109eb92..ee485e21 100644 --- a/backend/utils/tw/add_task.go +++ b/backend/utils/tw/add_task.go @@ -54,7 +54,11 @@ func AddTaskToTaskwarrior(req models.AddTaskRequestBody, dueDate string) error { cmdArgs = append(cmdArgs, "entry:"+req.EntryDate) } if req.WaitDate != "" { - cmdArgs = append(cmdArgs, "wait:"+req.WaitDate) + wait, err := utils.ConvertISOToTaskwarriorFormat(req.WaitDate) + if err != nil { + return fmt.Errorf("unexpected date format error: %v", err) + } + cmdArgs = append(cmdArgs, "wait:"+wait) } if req.End != "" { cmdArgs = append(cmdArgs, "end:"+req.End) diff --git a/frontend/src/components/HomeComponents/Tasks/AddTaskDialog.tsx b/frontend/src/components/HomeComponents/Tasks/AddTaskDialog.tsx index e55189c7..20b317de 100644 --- a/frontend/src/components/HomeComponents/Tasks/AddTaskDialog.tsx +++ b/frontend/src/components/HomeComponents/Tasks/AddTaskDialog.tsx @@ -351,15 +351,27 @@ export const AddTaskdialog = ({ Wait
- { + { setNewTask({ ...newTask, - wait: date ? format(date, 'yyyy-MM-dd') : '', + wait: date + ? hasTime + ? date.toISOString() + : format(date, 'yyyy-MM-dd') + : '', }); }} - placeholder="Select a wait date" + placeholder="Select wait date and time" />
diff --git a/frontend/src/components/HomeComponents/Tasks/__tests__/AddTaskDialog.test.tsx b/frontend/src/components/HomeComponents/Tasks/__tests__/AddTaskDialog.test.tsx index 69c0b0c3..987e7def 100644 --- a/frontend/src/components/HomeComponents/Tasks/__tests__/AddTaskDialog.test.tsx +++ b/frontend/src/components/HomeComponents/Tasks/__tests__/AddTaskDialog.test.tsx @@ -401,6 +401,11 @@ describe('AddTaskDialog Component', () => { label: 'Start', placeholder: 'Select start date and time', }, + { + name: 'wait', + label: 'Wait', + placeholder: 'Select wait date and time', + }, ]; test.each(dateTimeFields)( @@ -507,7 +512,6 @@ describe('AddTaskDialog Component', () => { const dateOnlyFields = [ { name: 'end', label: 'End', placeholder: 'Select an end date' }, { name: 'entry', label: 'Entry', placeholder: 'Select an entry date' }, - { name: 'wait', label: 'Wait', placeholder: 'Select a wait date' }, ]; test.each(dateOnlyFields)(