forked from MapComplete/MapComplete
		
	Fix dependency injection of refactoring
This commit is contained in:
		
							parent
							
								
									f0675a026b
								
							
						
					
					
						commit
						39e6cdfda4
					
				
					 4 changed files with 25 additions and 15 deletions
				
			
		| 
						 | 
					@ -27,8 +27,10 @@ export class Changes {
 | 
				
			||||||
    public features = new UIEventSource<{ feature: any, freshness: Date }[]>([]);
 | 
					    public features = new UIEventSource<{ feature: any, freshness: Date }[]>([]);
 | 
				
			||||||
    public readonly pendingChanges: UIEventSource<ChangeDescription[]> = LocalStorageSource.GetParsed<ChangeDescription[]>("pending-changes", [])
 | 
					    public readonly pendingChanges: UIEventSource<ChangeDescription[]> = LocalStorageSource.GetParsed<ChangeDescription[]>("pending-changes", [])
 | 
				
			||||||
    public readonly allChanges = new UIEventSource<ChangeDescription[]>(undefined)
 | 
					    public readonly allChanges = new UIEventSource<ChangeDescription[]>(undefined)
 | 
				
			||||||
    public readonly state: { allElements: ElementStorage; historicalUserLocations: FeatureSource; osmConnection: OsmConnection }
 | 
					    public readonly state: { allElements: ElementStorage; osmConnection: OsmConnection }
 | 
				
			||||||
    public readonly extraComment: UIEventSource<string> = new UIEventSource(undefined)
 | 
					    public readonly extraComment: UIEventSource<string> = new UIEventSource(undefined)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    private historicalUserLocations: FeatureSource
 | 
				
			||||||
    private _nextId: number = -1; // Newly assigned ID's are negative
 | 
					    private _nextId: number = -1; // Newly assigned ID's are negative
 | 
				
			||||||
    private readonly isUploading = new UIEventSource(false);
 | 
					    private readonly isUploading = new UIEventSource(false);
 | 
				
			||||||
    private readonly previouslyCreated: OsmObject[] = []
 | 
					    private readonly previouslyCreated: OsmObject[] = []
 | 
				
			||||||
| 
						 | 
					@ -38,7 +40,6 @@ export class Changes {
 | 
				
			||||||
    constructor(
 | 
					    constructor(
 | 
				
			||||||
        state?: {
 | 
					        state?: {
 | 
				
			||||||
            allElements: ElementStorage,
 | 
					            allElements: ElementStorage,
 | 
				
			||||||
            historicalUserLocations: FeatureSource,
 | 
					 | 
				
			||||||
            osmConnection: OsmConnection
 | 
					            osmConnection: OsmConnection
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        leftRightSensitive: boolean = false) {
 | 
					        leftRightSensitive: boolean = false) {
 | 
				
			||||||
| 
						 | 
					@ -148,7 +149,7 @@ export class Changes {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private calculateDistanceToChanges(change: OsmChangeAction, changeDescriptions: ChangeDescription[]) {
 | 
					    private calculateDistanceToChanges(change: OsmChangeAction, changeDescriptions: ChangeDescription[]) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const locations = this.state?.historicalUserLocations?.features?.data
 | 
					        const locations = this.historicalUserLocations?.features?.data
 | 
				
			||||||
        if (locations === undefined) {
 | 
					        if (locations === undefined) {
 | 
				
			||||||
            // No state loaded or no locations -> we can't calculate...
 | 
					            // No state loaded or no locations -> we can't calculate...
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
| 
						 | 
					@ -520,4 +521,8 @@ export class Changes {
 | 
				
			||||||
        console.debug("Calculated the pending changes: ", result.newObjects.length, "new; ", result.modifiedObjects.length, "modified;", result.deletedObjects, "deleted")
 | 
					        console.debug("Calculated the pending changes: ", result.newObjects.length, "new; ", result.modifiedObjects.length, "modified;", result.deletedObjects, "deleted")
 | 
				
			||||||
        return result
 | 
					        return result
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public setHistoricalUserLocations(locations: FeatureSource ){
 | 
				
			||||||
 | 
					        this.historicalUserLocations = locations
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -20,10 +20,6 @@ export default class ElementsState extends FeatureSwitchState {
 | 
				
			||||||
     The mapping from id -> UIEventSource<properties>
 | 
					     The mapping from id -> UIEventSource<properties>
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public allElements: ElementStorage = new ElementStorage();
 | 
					    public allElements: ElementStorage = new ElementStorage();
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     THe change handler
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public changes: Changes;
 | 
					 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     The latest element that was selected
 | 
					     The latest element that was selected
 | 
				
			||||||
| 
						 | 
					@ -48,9 +44,6 @@ export default class ElementsState extends FeatureSwitchState {
 | 
				
			||||||
    constructor(layoutToUse: LayoutConfig) {
 | 
					    constructor(layoutToUse: LayoutConfig) {
 | 
				
			||||||
        super(layoutToUse);
 | 
					        super(layoutToUse);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // @ts-ignore
 | 
					 | 
				
			||||||
        this.changes = new Changes(this, layoutToUse?.isLeftRightSensitive() ?? false)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // -- Location control initialization
 | 
					            // -- Location control initialization
 | 
				
			||||||
            const zoom = UIEventSource.asFloat(
 | 
					            const zoom = UIEventSource.asFloat(
 | 
				
			||||||
                QueryParameters.GetQueryParameter(
 | 
					                QueryParameters.GetQueryParameter(
 | 
				
			||||||
| 
						 | 
					@ -85,10 +78,7 @@ export default class ElementsState extends FeatureSwitchState {
 | 
				
			||||||
                lat.setData(latlonz.lat);
 | 
					                lat.setData(latlonz.lat);
 | 
				
			||||||
                lon.setData(latlonz.lon);
 | 
					                lon.setData(latlonz.lon);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        new ChangeToElementsActor(this.changes, this.allElements)
 | 
					 | 
				
			||||||
        new PendingChangesUploader(this.changes, this.selectedElement);
 | 
					 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -271,6 +271,7 @@ export default class MapState extends UserRelatedState {
 | 
				
			||||||
        let gpsLayerDef: FilteredLayer = this.filteredLayers.data.filter(l => l.layerDef.id === "gps_location_history")[0]
 | 
					        let gpsLayerDef: FilteredLayer = this.filteredLayers.data.filter(l => l.layerDef.id === "gps_location_history")[0]
 | 
				
			||||||
        if (gpsLayerDef !== undefined) {
 | 
					        if (gpsLayerDef !== undefined) {
 | 
				
			||||||
            this.historicalUserLocations = new SimpleFeatureSource(gpsLayerDef, Tiles.tile_index(0, 0, 0), features);
 | 
					            this.historicalUserLocations = new SimpleFeatureSource(gpsLayerDef, Tiles.tile_index(0, 0, 0), features);
 | 
				
			||||||
 | 
					            this.changes.setHistoricalUserLocations(this.historicalUserLocations)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,9 @@ import {Utils} from "../../Utils";
 | 
				
			||||||
import Locale from "../../UI/i18n/Locale";
 | 
					import Locale from "../../UI/i18n/Locale";
 | 
				
			||||||
import ElementsState from "./ElementsState";
 | 
					import ElementsState from "./ElementsState";
 | 
				
			||||||
import SelectedElementTagsUpdater from "../Actors/SelectedElementTagsUpdater";
 | 
					import SelectedElementTagsUpdater from "../Actors/SelectedElementTagsUpdater";
 | 
				
			||||||
 | 
					import {Changes} from "../Osm/Changes";
 | 
				
			||||||
 | 
					import ChangeToElementsActor from "../Actors/ChangeToElementsActor";
 | 
				
			||||||
 | 
					import PendingChangesUploader from "../Actors/PendingChangesUploader";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * The part of the state which keeps track of user-related stuff, e.g. the OSM-connection,
 | 
					 * The part of the state which keeps track of user-related stuff, e.g. the OSM-connection,
 | 
				
			||||||
| 
						 | 
					@ -20,6 +23,10 @@ export default class UserRelatedState extends ElementsState {
 | 
				
			||||||
     The user credentials
 | 
					     The user credentials
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public osmConnection: OsmConnection;
 | 
					    public osmConnection: OsmConnection;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     THe change handler
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public changes: Changes;
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * The key for mangrove
 | 
					     * The key for mangrove
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					@ -44,6 +51,13 @@ export default class UserRelatedState extends ElementsState {
 | 
				
			||||||
            attemptLogin: options?.attemptLogin
 | 
					            attemptLogin: options?.attemptLogin
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.changes = new Changes(this, layoutToUse?.isLeftRightSensitive() ?? false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        new ChangeToElementsActor(this.changes, this.allElements)
 | 
				
			||||||
 | 
					        new PendingChangesUploader(this.changes, this.selectedElement);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.mangroveIdentity = new MangroveIdentity(
 | 
					        this.mangroveIdentity = new MangroveIdentity(
 | 
				
			||||||
            this.osmConnection.GetLongPreference("identity", "mangrove")
 | 
					            this.osmConnection.GetLongPreference("identity", "mangrove")
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue