Skip to content

Commit b0ab2a6

Browse files
authored
Merge branch 'main' into nmetulev/useContactApis
2 parents 11be04d + 96ed37b commit b0ab2a6

File tree

5 files changed

+53
-41
lines changed

5 files changed

+53
-41
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
<mgt-msal-provider
2727
client-id="a974dfa0-9f57-49b9-95db-90f04ce2111a"
28-
scopes="user.read,people.read,user.readbasic.all,contacts.read,calendars.read"
28+
scopes="user.read,people.read,user.readbasic.all,contacts.read,calendars.read,presence.read.all,tasks.readwrite,presence.read,user.read.all,group.read.all,tasks.read"
2929
redirect-uri="http://localhost:3000"
3030
depends-on="mgt-teams-provider"
3131
></mgt-msal-provider>

packages/mgt-react/src/generated/react.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export type AgendaProps = {
1212
events?: MicrosoftGraph.Event[];
1313
showMax?: number;
1414
groupByDay?: boolean;
15+
preferredTimezone?: string;
1516
templateConverters?: MgtElement.TemplateContext;
1617
templateContext?: MgtElement.TemplateContext;
1718
direction?: string;

packages/mgt/src/components/mgt-agenda/mgt-agenda.ts

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,15 @@ export class MgtAgenda extends MgtTemplatedComponent {
259259
`;
260260
}
261261

262+
/**
263+
* Reloads the component with its current settings and potential new data
264+
*
265+
* @memberof MgtAgenda
266+
*/
267+
public async reload() {
268+
this.events = await this.loadEvents();
269+
}
270+
262271
/**
263272
* Render the loading state
264273
*
@@ -496,7 +505,40 @@ export class MgtAgenda extends MgtTemplatedComponent {
496505
return;
497506
}
498507

508+
const events = await this.loadEvents();
509+
if (events && events.length > 0) {
510+
this.events = events;
511+
}
512+
}
513+
514+
private async reloadState() {
515+
this.events = null;
516+
this.requestStateUpdate(true);
517+
}
518+
519+
private onResize() {
520+
this._isNarrow = this.offsetWidth < 600;
521+
}
522+
523+
private eventClicked(event: MicrosoftGraph.Event) {
524+
this.fireCustomEvent('eventClick', { event });
525+
}
526+
527+
private getEventTimeString(event: MicrosoftGraph.Event) {
528+
if (event.isAllDay) {
529+
return 'ALL DAY';
530+
}
531+
532+
const start = this.prettyPrintTimeFromDateTime(new Date(event.start.dateTime));
533+
const end = this.prettyPrintTimeFromDateTime(new Date(event.end.dateTime));
534+
535+
return `${start} - ${end}`;
536+
}
537+
538+
private async loadEvents(): Promise<MicrosoftGraph.Event[]> {
499539
const p = Providers.globalProvider;
540+
let events: MicrosoftGraph.Event[] = [];
541+
500542
if (p && p.state === ProviderState.SignedIn) {
501543
const graph = p.graph.forComponent(this);
502544

@@ -525,7 +567,7 @@ export class MgtAgenda extends MgtTemplatedComponent {
525567
const results = await request.get();
526568

527569
if (results && results.value) {
528-
this.events = results.value;
570+
events = results.value;
529571
}
530572
// tslint:disable-next-line: no-empty
531573
} catch (e) {}
@@ -538,42 +580,20 @@ export class MgtAgenda extends MgtTemplatedComponent {
538580
const iterator = await getEventsPageIterator(graph, start, end, this.groupId, this.preferredTimezone);
539581

540582
if (iterator && iterator.value) {
541-
this.events = iterator.value;
583+
events = iterator.value;
542584

543585
while (iterator.hasNext) {
544586
await iterator.next();
545-
this.events = iterator.value;
587+
events = iterator.value;
546588
}
547589
}
548590
} catch (error) {
549591
// noop - possible error with graph
550592
}
551593
}
552594
}
553-
}
554-
555-
private async reloadState() {
556-
this.events = null;
557-
this.requestStateUpdate(true);
558-
}
559-
560-
private onResize() {
561-
this._isNarrow = this.offsetWidth < 600;
562-
}
563-
564-
private eventClicked(event: MicrosoftGraph.Event) {
565-
this.fireCustomEvent('eventClick', { event });
566-
}
567-
568-
private getEventTimeString(event: MicrosoftGraph.Event) {
569-
if (event.isAllDay) {
570-
return 'ALL DAY';
571-
}
572595

573-
const start = this.prettyPrintTimeFromDateTime(new Date(event.start.dateTime));
574-
const end = this.prettyPrintTimeFromDateTime(new Date(event.end.dateTime));
575-
576-
return `${start} - ${end}`;
596+
return events;
577597
}
578598

579599
private prettyPrintTimeFromDateTime(date: Date) {

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

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -707,17 +707,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
707707
}
708708
}
709709

710-
if (people) {
711-
people = people.filter((user: User) => {
712-
return (
713-
user.displayName.toLowerCase().indexOf(input) !== -1 ||
714-
(!!user.givenName && user.givenName.toLowerCase().indexOf(input) !== -1) ||
715-
(!!user.surname && user.surname.toLowerCase().indexOf(input) !== -1) ||
716-
(!!user.mail && user.mail.toLowerCase().indexOf(input) !== -1)
717-
);
718-
});
719-
}
720-
721710
this._foundPeople = this.filterPeople(people);
722711
}
723712

@@ -844,6 +833,8 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
844833
highlight = displayName.slice(highlightLocation, highlightLocation + userInputLength);
845834
last = displayName.slice(highlightLocation + userInputLength, displayName.length);
846835
}
836+
} else {
837+
first = person.displayName;
847838
}
848839

849840
return html`

packages/mgt/src/graph/graph.user.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,9 @@ export async function findUsers(graph: IGraph, query: string, top: number = 10):
406406
try {
407407
graphResult = await graph
408408
.api('users')
409-
.filter(
410-
`startswith(displayName,'${query}') or startswith(givenName,'${query}') or startswith(surname,'${query}') or startswith(mail,'${query}') or startswith(userPrincipalName,'${query}')`
411-
)
409+
.header('ConsistencyLevel', 'eventual')
410+
.count(true)
411+
.search(`"displayName:${query}"`)
412412
.top(top)
413413
.middlewareOptions(prepScopes(scopes))
414414
.get();

0 commit comments

Comments
 (0)