Compare commits

...

1 Commits

Author SHA1 Message Date
Roberto
d7307e146a fix(TaskFormDialog): control Due popover open state for keyboard close
Add dueOpen state + onOpenChange so Esc and outside-click close the
popover consistently with the other pills; wire DateField.onCommit
to close the popover after Enter or calendar click.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 11:21:42 +02:00

View File

@@ -318,6 +318,7 @@ export function TaskFormDialog({
const [priorityOpen, setPriorityOpen] = useState(false);
const [statusOpen, setStatusOpen] = useState(false);
const [assigneesOpen, setAssigneesOpen] = useState(false);
const [dueOpen, setDueOpen] = useState(false);
const [creatingProject, setCreatingProject] = useState(false);
const [assigneeInput, setAssigneeInput] = useState('');
@@ -333,6 +334,7 @@ export function TaskFormDialog({
setPriorityOpen(false);
setStatusOpen(false);
setAssigneesOpen(false);
setDueOpen(false);
}
}, [open, initialValues]);
@@ -502,7 +504,7 @@ export function TaskFormDialog({
</Popover>
{/* Due date */}
<Popover>
<Popover open={dueOpen} onOpenChange={setDueOpen}>
<PopoverTrigger asChild>
<PropertyPill
{...pillsRoving.getItemProps(3)}
@@ -519,6 +521,7 @@ export function TaskFormDialog({
withTime
value={values.dueDate ? new Date(values.dueDate) : undefined}
onChange={(d) => setValues((v) => ({ ...v, dueDate: d ? d.getTime() : null }))}
onCommit={() => setDueOpen(false)}
placeholder={t('tasks.colDue')}
aria-label={t('tasks.colDue')}
/>