From 2747e6d121cefdec09786241f248f80a300f38b6 Mon Sep 17 00:00:00 2001 From: Mnickii Date: Thu, 1 Feb 2024 15:25:32 +0300 Subject: [PATCH 1/3] fix keyboard focus when removing or adding person from suggestion list --- .../mgt-people-picker/mgt-people-picker.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts b/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts index 8e50d0800c..943b196c1e 100644 --- a/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts +++ b/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts @@ -854,7 +854,8 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { id="${person.id}" class="searched-people-list-result" role="option" - @click="${() => this.handleSuggestionClick(person)}"> + @click="${() => this.handleSuggestionClick(person)}" + @keydown="${(e: KeyboardEvent) => this.handleSuggestionKeydown(person, e)}"> ${this.renderPersonResult(person)} ` @@ -1200,10 +1201,8 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { } return p.id !== person.id; }); - if (this.hasMaxSelections) { - this.enableTextInput(); - } this.selectedPeople = filteredPersonArr; + this.enableTextInput(); void this.loadState(); } @@ -1216,6 +1215,7 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { protected handleRemovePersonKeyDown(person: IDynamicPerson, e: KeyboardEvent): void { if (e.key === 'Enter') { this.removePerson(person, e); + this.enableTextInput(); } } @@ -1378,9 +1378,23 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { this.disableTextInput(); this.input.value = ''; } + this.enableTextInput(); this.hideFlyout(); } + // handle suggestion list item keydown + private handleSuggestionKeydown(person: IDynamicPerson, e: KeyboardEvent): void { + if (e.key === 'Enter') { + this.addPerson(person); + if (this.hasMaxSelections) { + this.disableTextInput(); + this.input.value = ''; + } + this.enableTextInput(); + this.hideFlyout(); + } + } + /** * Tracks event on user input in search * From dc3f4492976dfe2f11df5a9c2ed88d9161bddba8 Mon Sep 17 00:00:00 2001 From: Mnickii Date: Mon, 5 Feb 2024 11:05:14 +0300 Subject: [PATCH 2/3] remove cursor in single-select --- .../src/components/mgt-people-picker/mgt-people-picker.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts b/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts index 943b196c1e..0ac93d9ae7 100644 --- a/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts +++ b/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts @@ -1202,7 +1202,6 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { return p.id !== person.id; }); this.selectedPeople = filteredPersonArr; - this.enableTextInput(); void this.loadState(); } @@ -1243,6 +1242,7 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { this._foundPeople = []; this._arrowSelectionCount = -1; } + this.enableTextInput(); } } @@ -1378,7 +1378,6 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { this.disableTextInput(); this.input.value = ''; } - this.enableTextInput(); this.hideFlyout(); } @@ -1390,7 +1389,6 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { this.disableTextInput(); this.input.value = ''; } - this.enableTextInput(); this.hideFlyout(); } } From 64cb915d9383e15952d01fa687a48f56ce5d7853 Mon Sep 17 00:00:00 2001 From: Mnickii Date: Wed, 7 Feb 2024 12:46:37 +0300 Subject: [PATCH 3/3] remove unecessary keydown function --- .../mgt-people-picker/mgt-people-picker.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts b/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts index 0ac93d9ae7..655ad85ffd 100644 --- a/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts +++ b/packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts @@ -854,8 +854,7 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { id="${person.id}" class="searched-people-list-result" role="option" - @click="${() => this.handleSuggestionClick(person)}" - @keydown="${(e: KeyboardEvent) => this.handleSuggestionKeydown(person, e)}"> + @click="${() => this.handleSuggestionClick(person)}"> ${this.renderPersonResult(person)} ` @@ -1381,18 +1380,6 @@ export class MgtPeoplePicker extends MgtTemplatedTaskComponent { this.hideFlyout(); } - // handle suggestion list item keydown - private handleSuggestionKeydown(person: IDynamicPerson, e: KeyboardEvent): void { - if (e.key === 'Enter') { - this.addPerson(person); - if (this.hasMaxSelections) { - this.disableTextInput(); - this.input.value = ''; - } - this.hideFlyout(); - } - } - /** * Tracks event on user input in search *