This commit is contained in:
Willem Dantuma 2020-02-05 14:57:12 +01:00
parent 1bec8c2038
commit 4eb10aa676
5 changed files with 13 additions and 20 deletions

View File

@ -181,19 +181,20 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit {
newQueryState = tassign(mapReducers.initialQueryState); newQueryState = tassign(mapReducers.initialQueryState);
if (queryState != "") { if (queryState != "") {
newQueryState = this.serializeService.deserialize(queryState); newQueryState = this.serializeService.deserialize(queryState);
queryState = this.serializeService.serialize(newQueryState);
} }
queryStateChanged = this.lastQueryState != queryState; queryStateChanged = this.lastQueryState != queryState;
this.lastQueryState = queryState; this.lastQueryState = queryState;
} }
if (mapStateChanged && queryStateChanged) { if (mapStateChanged && queryStateChanged) {
//console.log("Both states"); console.debug("Both states");
this.store.dispatch(new mapActions.SetState(newMapState, newQueryState)); this.store.dispatch(new mapActions.SetState(newMapState, newQueryState));
} else if (mapStateChanged) { } else if (mapStateChanged) {
//console.log("Map state"); console.debug("Map state");
this.store.dispatch(new mapActions.SetMapState(newMapState)); this.store.dispatch(new mapActions.SetMapState(newMapState));
} else if (queryStateChanged) { } else if (queryStateChanged) {
//console.log("Query state"); console.debug("Query state");
this.store.dispatch(new mapActions.SetQueryState(newQueryState)); this.store.dispatch(new mapActions.SetQueryState(newQueryState));
} }
this.stateSetCount += 1; this.stateSetCount += 1;

View File

@ -13,7 +13,6 @@ export const INITROOTSUCCESS = '[Explorer] InitRootSuccess';
export const OPENMODAL = '[AppCommon] OpenModal'; export const OPENMODAL = '[AppCommon] OpenModal';
export const CLOSEMODAL = '[AppCommon] CloseModal'; export const CLOSEMODAL = '[AppCommon] CloseModal';
export const LOGIN = '[AppCommon] Login'; export const LOGIN = '[AppCommon] Login';
export const INITIALIZED = '[AppCommon] Initialized';
export const ESCAPE = '[AppCommon] Escape'; export const ESCAPE = '[AppCommon] Escape';
export const LOADITEMTYPES = '[AppCommon] LoadItemTypes'; export const LOADITEMTYPES = '[AppCommon] LoadItemTypes';
@ -104,12 +103,6 @@ export class Login implements Action {
constructor(public url: string) { } constructor(public url: string) { }
} }
export class Initialized implements Action {
readonly type = INITIALIZED;
constructor() { }
}
export class Escape implements Action { export class Escape implements Action {
readonly type = ESCAPE; readonly type = ESCAPE;
@ -235,7 +228,6 @@ export type Actions = OpenModal
| InitRootSuccess | InitRootSuccess
| CloseModal | CloseModal
| Login | Login
| Initialized
| ItemChangedEvent | ItemChangedEvent
| ItemAddedEvent | ItemAddedEvent
| ItemDeletedEvent | ItemDeletedEvent

View File

@ -40,10 +40,15 @@ export class AppCommonEffects {
@Effect() @Effect()
initUser$: Observable<Action> = this.actions$.pipe( initUser$: Observable<Action> = this.actions$.pipe(
ofType(appCommonActions.INITUSER), ofType(appCommonActions.INITUSER),
switchMap(() => { withLatestFrom(this.store$.select(appCommonReducers.selectGetInitialized)),
switchMap(([action, initialized]) => {
if(!initialized) {
return this.userService$.getCurrentUser().pipe( return this.userService$.getCurrentUser().pipe(
map((user: IUser) => new appCommonActions.InitUserSuccess(user)), map((user: IUser) => new appCommonActions.InitUserSuccess(user)),
catchError(error => of(new appCommonActions.Fail(error)))) catchError(error => of(new appCommonActions.Fail(error))))
} else {
return [];
}
} }
)); ));

View File

@ -33,7 +33,7 @@ export function reducer(state = initialState, action: appCommonActions.Actions )
switch (action.type) { switch (action.type) {
case appCommonActions.INITUSERSUCCESS: { case appCommonActions.INITUSERSUCCESS: {
let a = action as appCommonActions.InitUserSuccess; let a = action as appCommonActions.InitUserSuccess;
return tassign(state, { user: a.user }); return tassign(state, { user: a.user,initialized: true });
} }
case appCommonActions.INITROOTSUCCESS: { case appCommonActions.INITROOTSUCCESS: {
let a = action as appCommonActions.InitRootSuccess; let a = action as appCommonActions.InitRootSuccess;
@ -44,10 +44,7 @@ export function reducer(state = initialState, action: appCommonActions.Actions )
} }
case appCommonActions.CLOSEMODAL: { case appCommonActions.CLOSEMODAL: {
return tassign(state, { openedModalName: null }); return tassign(state, { openedModalName: null });
} }
case appCommonActions.INITIALIZED: {
return tassign(state, { initialized: true });
}
case appCommonActions.LOADITEMTYPESSUCCESS: { case appCommonActions.LOADITEMTYPESSUCCESS: {
let a = action as appCommonActions.LoadItemTypesSuccess; let a = action as appCommonActions.LoadItemTypesSuccess;
return tassign(state, { itemTypes: a.itemTypes }); return tassign(state, { itemTypes: a.itemTypes });

View File

@ -18,8 +18,6 @@ import * as appCommonActions from '../actions/app-common.actions';
}) })
export class AuthGuard implements CanActivate, CanLoad, CanActivateChild { export class AuthGuard implements CanActivate, CanLoad, CanActivateChild {
private loginDispatched = false;
private initialized = false;
constructor(private oauthService: OAuthService, private router: Router, private store: Store<appCommonReducer.State> ) { } constructor(private oauthService: OAuthService, private router: Router, private store: Store<appCommonReducer.State> ) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {