Fix inituser flow
This commit is contained in:
		| @@ -3,8 +3,8 @@ import { Router } from '@angular/router'; | ||||
| import { OAuthService,UserInfo } from 'angular-oauth2-oidc'; | ||||
| import { Store, Action } from '@ngrx/store'; | ||||
| import { Effect, Actions,ofType } from '@ngrx/effects'; | ||||
| import { Observable ,  defer ,  of,from } from 'rxjs'; | ||||
| import { withLatestFrom,mergeMap,switchMap,map,catchError} from 'rxjs/operators'; | ||||
| import { Observable ,  defer ,  of,from,zip } from 'rxjs'; | ||||
| import { withLatestFrom,mergeMap,switchMap,map,catchError,first} from 'rxjs/operators'; | ||||
| import * as appCommonActions from '../actions/app-common.actions'; | ||||
| import * as appCommonReducers from '../reducers/app-common.reducer'; | ||||
| import { ItemService } from '../services/item.service'; | ||||
| @@ -50,16 +50,11 @@ export class AppCommonEffects { | ||||
|   @Effect() | ||||
|   initUser$: Observable<Action> = this.actions$.pipe( | ||||
|     ofType(appCommonActions.INITUSER), | ||||
|     withLatestFrom(this.store$.select(appCommonReducers.selectGetInitialized)), | ||||
|     switchMap(([action, initialized]) => { | ||||
|       if(!initialized) {        | ||||
|       return this.userService$.getCurrentUser().pipe( | ||||
|         withLatestFrom(from(this.oauthService$.loadUserProfile())), | ||||
|     first(), | ||||
|     switchMap((action) => { | ||||
|         return zip(this.userService$.getCurrentUser(),from(this.oauthService$.loadUserProfile())).pipe( | ||||
|         switchMap(([user,userInfo]) => {return of(new appCommonActions.InitUserSuccess(user,userInfo as UserInfo))} ), | ||||
|         catchError(error => of(new appCommonActions.Fail(error)))) | ||||
|       } else { | ||||
|         return []; | ||||
|       } | ||||
|     } | ||||
|   )); | ||||
|    | ||||
|   | ||||
| @@ -38,6 +38,9 @@ export const initialState: State = { | ||||
|  | ||||
| export function reducer(state = initialState, action: appCommonActions.Actions ): State { | ||||
|   switch (action.type) { | ||||
|     case appCommonActions.INITUSER: { | ||||
|       return tassign(state,{initialized: true}); | ||||
|     } | ||||
|     case appCommonActions.INITUSERSUCCESS: { | ||||
|       let a = action as appCommonActions.InitUserSuccess; | ||||
|       let claims = {} | ||||
| @@ -50,7 +53,7 @@ export function reducer(state = initialState, action: appCommonActions.Actions ) | ||||
|         name:a.userinfo["name"], | ||||
|         claims:claims | ||||
|       };      | ||||
|       return tassign(state, { user: user,initialized: true }); | ||||
|       return tassign(state, { user: user }); | ||||
|     } | ||||
|     case appCommonActions.INITROOTSUCCESS: { | ||||
|       let a = action as appCommonActions.InitRootSuccess; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user