@@ -25,7 +25,6 @@ export class MgtLogin extends MgtBaseComponent {
2525
2626 @property ( { attribute : false } ) private _showMenu : boolean = false ;
2727 @property ( { attribute : false } ) private _loading : boolean = true ;
28- @property ( { attribute : false } ) private _user : MicrosoftGraph . User ;
2928
3029 @property ( {
3130 attribute : 'user-details' ,
@@ -81,41 +80,6 @@ export class MgtLogin extends MgtBaseComponent {
8180 ) ;
8281 }
8382 }
84- // else if (changedProps.get("_showMenu") === true) {
85- // // get login button bounds
86- // const loginButton = this.shadowRoot.querySelector(".login-button");
87- // if (loginButton && loginButton.animate) {
88- // this._loginButtonRect = loginButton.getBoundingClientRect();
89-
90- // // invert variables
91- // const deltaX = this._popupRect.left - this._loginButtonRect.left;
92- // const deltaY = this._popupRect.top - this._loginButtonRect.top;
93- // const deltaW = this._popupRect.width / this._loginButtonRect.width;
94- // const deltaH = this._popupRect.height / this._loginButtonRect.height;
95-
96- // // play back
97- // loginButton.animate(
98- // [
99- // {
100- // transformOrigin: "top left",
101- // transform: `
102- // translate(${deltaX}px, ${deltaY}px)
103- // scale(${deltaW}, ${deltaH})
104- // `
105- // },
106- // {
107- // transformOrigin: "top left",
108- // transform: "none"
109- // }
110- // ],
111- // {
112- // duration: 100,
113- // easing: "ease-out",
114- // fill: "both"
115- // }
116- // );
117- // }
118- // }
11983 }
12084
12185 firstUpdated ( ) {
@@ -131,7 +95,6 @@ export class MgtLogin extends MgtBaseComponent {
13195
13296 private async loadState ( ) {
13397 if ( this . userDetails ) {
134- this . _user = null ;
13598 return ;
13699 }
137100
@@ -140,9 +103,18 @@ export class MgtLogin extends MgtBaseComponent {
140103 if ( provider ) {
141104 this . _loading = true ;
142105 if ( provider . state === ProviderState . SignedIn ) {
143- this . _user = await provider . graph . getMe ( ) ;
106+ let batch = provider . graph . createBatch ( ) ;
107+ batch . get ( 'me' , 'me' , [ 'user.read' ] ) ;
108+ batch . get ( 'photo' , 'me/photo/$value' , [ 'user.read' ] ) ;
109+ let response = await batch . execute ( ) ;
110+
111+ this . userDetails = {
112+ displayName : response . me . displayName ,
113+ email : response . me . mail || response . me . userPrincipalName ,
114+ image : response . photo
115+ } ;
144116 } else if ( provider . state === ProviderState . SignedOut ) {
145- this . _user = null ;
117+ this . userDetails = null ;
146118 } else {
147119 return ;
148120 }
@@ -153,7 +125,7 @@ export class MgtLogin extends MgtBaseComponent {
153125
154126 private onClick ( event : MouseEvent ) {
155127 event . stopPropagation ( ) ;
156- if ( this . _user || this . userDetails ) {
128+ if ( this . userDetails ) {
157129 // get login button bounds
158130 const loginButton = this . renderRoot . querySelector ( '.login-button' ) ;
159131 if ( loginButton ) {
@@ -212,7 +184,7 @@ export class MgtLogin extends MgtBaseComponent {
212184 }
213185
214186 render ( ) {
215- const content = this . _user || this . userDetails ? this . renderLoggedIn ( ) : this . renderLogIn ( ) ;
187+ const content = this . userDetails ? this . renderLoggedIn ( ) : this . renderLogIn ( ) ;
216188
217189 return html `
218190 < div class ="root ">
@@ -234,11 +206,7 @@ export class MgtLogin extends MgtBaseComponent {
234206 }
235207
236208 renderLoggedIn ( ) {
237- if ( this . _user ) {
238- return html `
239- < mgt-person person-query ="me " show-name />
240- ` ;
241- } else if ( this . userDetails ) {
209+ if ( this . userDetails ) {
242210 return html `
243211 < mgt-person person-details =${ JSON . stringify ( this . userDetails ) } show-name />
244212 ` ;
@@ -248,17 +216,13 @@ export class MgtLogin extends MgtBaseComponent {
248216 }
249217
250218 renderMenu ( ) {
251- if ( ! this . _user && ! this . userDetails ) {
219+ if ( ! this . userDetails ) {
252220 return ;
253221 }
254222
255- let personComponent = this . _user
256- ? html `
257- < mgt-person person-query ="me " show-name show-email />
258- `
259- : html `
260- < mgt-person person-details =${ JSON . stringify ( this . userDetails ) } show-name show-email />
261- ` ;
223+ let personComponent = html `
224+ < mgt-person person-details =${ JSON . stringify ( this . userDetails ) } show-name show-email />
225+ ` ;
262226
263227 return html `
264228 < div class ="popup ${ this . _openLeft ? 'open-left' : '' } ${ this . _showMenu ? 'show-menu' : '' } ">
0 commit comments