Skip to content

Commit cc139cb

Browse files
amrutha95Amrutha Srinivasan
andauthored
Invalid email #752 (#827)
* 801 fix * bugfix * discarded changes * discarded changes * added else case * added else case Co-authored-by: Amrutha Srinivasan <[email protected]>
1 parent 44d2087 commit cc139cb

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import { IGraph, prepScopes, CacheItem, CacheSchema, CacheService, CacheStore } from '@microsoft/mgt-element';
99
import { Contact, Person, User } from '@microsoft/microsoft-graph-types';
10+
import { extractEmailAddress } from '../utils/Utils';
1011
import { IDynamicPerson } from './types';
1112

1213
/**
@@ -199,11 +200,11 @@ export function getEmailFromGraphEntity(entity: IDynamicPerson): string {
199200
const contact = entity as Contact;
200201

201202
if (user.mail) {
202-
return user.mail;
203+
return extractEmailAddress(user.mail);
203204
} else if (person.scoredEmailAddresses && person.scoredEmailAddresses.length) {
204-
return person.scoredEmailAddresses[0].address;
205+
return extractEmailAddress(person.scoredEmailAddresses[0].address);
205206
} else if (contact.emailAddresses && contact.emailAddresses.length) {
206-
return contact.emailAddresses[0].address;
207+
return extractEmailAddress(contact.emailAddresses[0].address);
207208
}
208209
return null;
209210
}

packages/mgt-components/src/utils/Utils.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,15 @@ export function blobToBase64(blob: Blob): Promise<string> {
222222
reader.readAsDataURL(blob);
223223
});
224224
}
225+
226+
/**
227+
* extracts an email address from a string
228+
*
229+
* @param {string} emailString
230+
* @returns {string}
231+
*/
232+
export function extractEmailAddress(emailString: string): string {
233+
if (emailString.startsWith('[')) {
234+
return emailString.match(/([a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi).toString();
235+
} else return emailString;
236+
}

0 commit comments

Comments
 (0)