Skip to content

Commit 87d0880

Browse files
authored
fix(tasks): autofocus first input in task form (#1173)
* fix(tasks): autofocus first input in task form * fix(tasks): use looser autofocus selector
1 parent 3ea088e commit 87d0880

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/elements/content-sidebar/AddTaskButton.js

+4
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,16 @@ class AddTaskButton extends React.Component<Props, State> {
6363
const { isDisabled, feedbackUrl, ...passThrough } = this.props;
6464
const { isTaskFormOpen, taskType, error } = this.state;
6565

66+
// CSS selector for first form element
67+
// Note: Modal throws an error if this fails to find an element!
68+
const focusTargetSelector = '.task-modal input';
6669
return (
6770
<React.Fragment>
6871
<AddTaskMenu isDisabled={isDisabled} onMenuItemClick={this.handleClickMenuItem} />
6972
<Modal
7073
className="be-modal task-modal"
7174
data-testid="create-task-modal"
75+
focusElementSelector={focusTargetSelector}
7276
isOpen={isTaskFormOpen}
7377
onRequestClose={this.handleModalClose}
7478
title={

test/integration/content-sidebar/TaskForm.e2e.test.js

+8
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ describe('Create Task', () => {
2424
});
2525
});
2626

27+
context('Task Modal', () => {
28+
it('autofocuses first input (assignees)', () => {
29+
cy.contains(l('be.tasks.addTask')).click();
30+
cy.contains(l('be.tasks.addTask.approval')).click();
31+
cy.focused().should('have.attr', 'data-testid', 'task-form-assignee-input');
32+
});
33+
});
34+
2735
context('Task Form', () => {
2836
beforeEach(() => {
2937
cy.server();

0 commit comments

Comments
 (0)