Skip to content

Commit 909b2f9

Browse files
authored
feat(TaskDialog): add datetime picker for wait field (#364)
1 parent d140dc0 commit 909b2f9

3 files changed

Lines changed: 17 additions & 10 deletions

File tree

backend/controllers/edit_task.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ func EditTaskHandler(w http.ResponseWriter, r *http.Request) {
9191
return
9292
}
9393

94+
wait, err = utils.ConvertISOToTaskwarriorFormat(wait)
95+
if err != nil {
96+
http.Error(w, fmt.Sprintf("Invalid wait date format: %v", err), http.StatusBadRequest)
97+
return
98+
}
99+
94100
logStore := models.GetLogStore()
95101
job := Job{
96102
Name: "Edit Task",

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { EditTaskDialogProps } from '../../utils/types';
22
import { Badge } from '@/components/ui/badge';
33
import { Button } from '@/components/ui/button';
4-
import { DatePicker } from '@/components/ui/date-picker';
54
import { DateTimePicker } from '@/components/ui/date-time-picker';
65
import {
76
Dialog,
@@ -513,19 +512,18 @@ export const TaskDialog = ({
513512
<TableCell>
514513
{editState.isEditingWaitDate ? (
515514
<div className="flex items-center gap-2">
516-
<DatePicker
515+
<DateTimePicker
517516
date={
518517
editState.editedWaitDate &&
519518
editState.editedWaitDate !== ''
520519
? (() => {
521520
try {
522521
const dateStr =
523522
editState.editedWaitDate.includes('T')
524-
? editState.editedWaitDate.split('T')[0]
525-
: editState.editedWaitDate;
526-
const parsed = new Date(
527-
dateStr + 'T00:00:00'
528-
);
523+
? editState.editedWaitDate
524+
: editState.editedWaitDate +
525+
'T00:00:00';
526+
const parsed = new Date(dateStr);
529527
return isNaN(parsed.getTime())
530528
? undefined
531529
: parsed;
@@ -535,13 +533,16 @@ export const TaskDialog = ({
535533
})()
536534
: undefined
537535
}
538-
onDateChange={(date) =>
536+
onDateTimeChange={(date, hasTime) =>
539537
onUpdateState({
540538
editedWaitDate: date
541-
? format(date, 'yyyy-MM-dd')
539+
? hasTime
540+
? date.toISOString()
541+
: format(date, 'yyyy-MM-dd')
542542
: '',
543543
})
544544
}
545+
placeholder="Select wait date and time"
545546
/>
546547

547548
<Button

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1101,7 +1101,7 @@ describe('Tasks Component', () => {
11011101
});
11021102

11031103
test.each([
1104-
['Wait', 'Wait:', 'Pick a date'],
1104+
['Wait', 'Wait:', 'Select wait date and time'],
11051105
['End', 'End:', 'Select end date and time'],
11061106
['Due', 'Due:', 'Select due date and time'],
11071107
['Start', 'Start:', 'Select start date and time'],

0 commit comments

Comments
 (0)