@@ -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