Skip to content

Commit bbfa2b1

Browse files
feat(AddTaskDialog): add DateTimePicker for wait field (#382)
- 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
1 parent 0789dc4 commit bbfa2b1

3 files changed

Lines changed: 27 additions & 7 deletions

File tree

backend/utils/tw/add_task.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,11 @@ func AddTaskToTaskwarrior(req models.AddTaskRequestBody, dueDate string) error {
5454
cmdArgs = append(cmdArgs, "entry:"+req.EntryDate)
5555
}
5656
if req.WaitDate != "" {
57-
cmdArgs = append(cmdArgs, "wait:"+req.WaitDate)
57+
wait, err := utils.ConvertISOToTaskwarriorFormat(req.WaitDate)
58+
if err != nil {
59+
return fmt.Errorf("unexpected date format error: %v", err)
60+
}
61+
cmdArgs = append(cmdArgs, "wait:"+wait)
5862
}
5963
if req.End != "" {
6064
cmdArgs = append(cmdArgs, "end:"+req.End)

frontend/src/components/HomeComponents/Tasks/AddTaskDialog.tsx

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,15 +351,27 @@ export const AddTaskdialog = ({
351351
Wait
352352
</Label>
353353
<div className="col-span-3">
354-
<DatePicker
355-
date={newTask.wait ? new Date(newTask.wait) : undefined}
356-
onDateChange={(date) => {
354+
<DateTimePicker
355+
date={
356+
newTask.wait
357+
? new Date(
358+
newTask.wait.includes('T')
359+
? newTask.wait
360+
: `${newTask.wait}T00:00:00`
361+
)
362+
: undefined
363+
}
364+
onDateTimeChange={(date, hasTime) => {
357365
setNewTask({
358366
...newTask,
359-
wait: date ? format(date, 'yyyy-MM-dd') : '',
367+
wait: date
368+
? hasTime
369+
? date.toISOString()
370+
: format(date, 'yyyy-MM-dd')
371+
: '',
360372
});
361373
}}
362-
placeholder="Select a wait date"
374+
placeholder="Select wait date and time"
363375
/>
364376
</div>
365377
</div>

frontend/src/components/HomeComponents/Tasks/__tests__/AddTaskDialog.test.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,11 @@ describe('AddTaskDialog Component', () => {
401401
label: 'Start',
402402
placeholder: 'Select start date and time',
403403
},
404+
{
405+
name: 'wait',
406+
label: 'Wait',
407+
placeholder: 'Select wait date and time',
408+
},
404409
];
405410

406411
test.each(dateTimeFields)(
@@ -507,7 +512,6 @@ describe('AddTaskDialog Component', () => {
507512
const dateOnlyFields = [
508513
{ name: 'end', label: 'End', placeholder: 'Select an end date' },
509514
{ name: 'entry', label: 'Entry', placeholder: 'Select an entry date' },
510-
{ name: 'wait', label: 'Wait', placeholder: 'Select a wait date' },
511515
];
512516

513517
test.each(dateOnlyFields)(

0 commit comments

Comments
 (0)