Skip to content

Commit 96ed37b

Browse files
[mgt-agenda] Adding the reload functionality (#754)
* Adding the reload functionality * Removing unnecessary this.render(); * Removing commented code! * Making public + docs * Update packages/mgt/src/components/mgt-agenda/mgt-agenda.ts Co-authored-by: Nikola Metulev <[email protected]> Co-authored-by: Nikola Metulev <[email protected]>
1 parent 6abfc54 commit 96ed37b

File tree

1 file changed

+46
-26
lines changed

1 file changed

+46
-26
lines changed

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) {

0 commit comments

Comments
 (0)