Fix navigation issue
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				FarmMaps.Develop/FarmMapsLib/develop This commit looks good
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	FarmMaps.Develop/FarmMapsLib/develop This commit looks good
				
			This commit is contained in:
		| @@ -150,11 +150,11 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit { | |||||||
|     this.compassHeading$ = this.deviceorientationService.getCurrentCompassHeading(); |     this.compassHeading$ = this.deviceorientationService.getCurrentCompassHeading(); | ||||||
|     this.styles$ = this.store.select(mapReducers.selectGetStyles); |     this.styles$ = this.store.select(mapReducers.selectGetStyles); | ||||||
|  |  | ||||||
|     this.mapState$.pipe(withLatestFrom(this.queryState$)).subscribe((state) => { |     // this.mapState$.pipe(withLatestFrom(this.queryState$)).subscribe((state) => { | ||||||
|       this.replaceUrl(state[0], state[1], true); |     //   this.replaceUrl(state[0], state[1], true); | ||||||
|     }); |     // }); | ||||||
|     this.query$.pipe(withLatestFrom(this.mapState$)).subscribe((state) => { |     this.query$.pipe(withLatestFrom(this.mapState$)).subscribe((state) => { | ||||||
|       this.replaceUrl(state[1], state[0],false); |       this.replaceUrl(state[1], state[0],this.stateSetCount == 0); | ||||||
|     }); |     }); | ||||||
|     this.initCustomStyles(); |     this.initCustomStyles(); | ||||||
|   } |   } | ||||||
| @@ -210,17 +210,27 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit { | |||||||
|         queryStateChanged = this.lastQueryState !=  queryState; |         queryStateChanged = this.lastQueryState !=  queryState; | ||||||
|         this.lastQueryState = queryState; |         this.lastQueryState = queryState; | ||||||
|       } |       } | ||||||
|  |       this.zone.run(()=> { | ||||||
|  |         if ( queryStateChanged) { | ||||||
|  |           console.debug("Query state"); | ||||||
|  |           this.store.dispatch(new mapActions.SetQueryState(newQueryState)); | ||||||
|  |         } else if (mapStateChanged) { | ||||||
|  |           console.debug("Map state"); | ||||||
|  |           this.store.dispatch(new mapActions.SetMapState(newMapState)); | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |       | ||||||
|  |  | ||||||
|       if (mapStateChanged && queryStateChanged) { |       // if (mapStateChanged && queryStateChanged) { | ||||||
|         console.debug("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.debug("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.debug("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; | ||||||
|     }); |     }); | ||||||
|     setTimeout(() => { |     setTimeout(() => { | ||||||
|   | |||||||
| @@ -139,19 +139,7 @@ export class MapEffects { | |||||||
|   startSearchSucces$: Observable<Action> = this.actions$.pipe( |   startSearchSucces$: Observable<Action> = this.actions$.pipe( | ||||||
|     ofType(mapActions.STARTSEARCHSUCCESS), |     ofType(mapActions.STARTSEARCHSUCCESS), | ||||||
|     mergeMap((action: mapActions.StartSearchSuccess) => { |     mergeMap((action: mapActions.StartSearchSuccess) => { | ||||||
|       if (action.query.bboxFilter) { |  | ||||||
|         return [new commonActions.SetMenuVisible(false)]; |         return [new commonActions.SetMenuVisible(false)]; | ||||||
|       } else {  |  | ||||||
|       var extent = createEmpty(); |  | ||||||
|  |  | ||||||
|       if (extent) { |  | ||||||
|         for (let f of action.features) { |  | ||||||
|           extend(extent, (f as Feature).getGeometry().getExtent()); |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|       //return []; |  | ||||||
|       return [new mapActions.SetExtent(extent),new commonActions.SetMenuVisible(false)]; |  | ||||||
|     } |  | ||||||
|     })); |     })); | ||||||
|  |  | ||||||
|   @Effect() |   @Effect() | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ import {commonActions} from '@farmmaps/common'; | |||||||
| import { createSelector, createFeatureSelector } from '@ngrx/store'; | import { createSelector, createFeatureSelector } from '@ngrx/store'; | ||||||
|  |  | ||||||
| import {Feature} from 'ol'; | import {Feature} from 'ol'; | ||||||
|  | import { createEmpty, extend} from 'ol/extent'; | ||||||
|  |  | ||||||
| import { ROUTER_NAVIGATION, RouterNavigationAction } from '@ngrx/router-store'; | import { ROUTER_NAVIGATION, RouterNavigationAction } from '@ngrx/router-store'; | ||||||
|  |  | ||||||
| @@ -124,11 +125,21 @@ export function reducer(state = initialState, action: mapActions.Actions | commo | |||||||
|     } |     } | ||||||
|     case mapActions.STARTSEARCHSUCCESS: { |     case mapActions.STARTSEARCHSUCCESS: { | ||||||
|       let a = action as mapActions.StartSearchSuccess; |       let a = action as mapActions.StartSearchSuccess; | ||||||
|  |       let extent = state.extent; | ||||||
|  |       if (action.query.bboxFilter) { | ||||||
|  |         extent = createEmpty(); | ||||||
|  |         if (extent) { | ||||||
|  |           for (let f of action.features) { | ||||||
|  |             extend(extent, (f as Feature).getGeometry().getExtent()); | ||||||
|  |           } | ||||||
|  |         }   | ||||||
|  |       } | ||||||
|       return tassign(state, { |       return tassign(state, { | ||||||
|         panelVisible: true, |         panelVisible: true, | ||||||
|         clearEnabled: true, |         clearEnabled: true, | ||||||
|         searchMinified: true, |         searchMinified: true, | ||||||
|         features: a.features |         features: a.features, | ||||||
|  |         extent:extent | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|     case mapActions.SELECTFEATURE: { |     case mapActions.SELECTFEATURE: { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user