Skip to content

Commit 964204d

Browse files
authored
fix: email resolution on paste for people picker (#1791)
Closes #1763 Adds special handling for keyUp when pasting to resolve email addresses
1 parent 5d1b5cd commit 964204d

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,10 +1395,11 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
13951395
* Adds debounce method for set delay on user input
13961396
*/
13971397
private onUserKeyUp(event: KeyboardEvent): void {
1398+
const isPaste = (event.ctrlKey || event.metaKey) && event.key === 'v';
13981399
const isCmdOrCtrlKey = ['ControlLeft', 'ControlRight'].includes(event.code) || event.ctrlKey || event.metaKey;
13991400
const isArrowKey = ['ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft'].includes(event.code);
14001401

1401-
if (isCmdOrCtrlKey || isArrowKey) {
1402+
if ((!isPaste && isCmdOrCtrlKey) || isArrowKey) {
14021403
if (isCmdOrCtrlKey || ['ArrowLeft', 'ArrowRight'].includes(event.code)) {
14031404
// Only hide the flyout when you're doing selections with Left/Right Arrow key
14041405
this.hideFlyout();
@@ -1439,7 +1440,9 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
14391440
} else {
14401441
this.userInput = input.value;
14411442
const validEmail = isValidEmail(this.userInput);
1442-
if (!validEmail) {
1443+
if (validEmail && this.allowAnyEmail) {
1444+
this.handleAnyEmail();
1445+
} else {
14431446
this.handleUserSearch();
14441447
}
14451448
}

0 commit comments

Comments
 (0)