forked from MapComplete/MapComplete
		
	Optimazation: the popup content is only initialized when the popup marker is clicked
This commit is contained in:
		
							parent
							
								
									eab842d18a
								
							
						
					
					
						commit
						8bb9b1228b
					
				
					 1 changed files with 11 additions and 5 deletions
				
			
		|  | @ -186,13 +186,11 @@ export class FilteredLayer { | |||
|         } | ||||
|         this._dataFromOverpass = fusedFeatures; | ||||
| 
 | ||||
|         console.log("New elements are ", this._newElements) | ||||
|         for (const feature of this._newElements) { | ||||
|             if (!idsFromOverpass.has(feature.properties.id)) { | ||||
|                 // This element is not yet uploaded or not yet visible in overpass
 | ||||
|                 // We include it in the layer
 | ||||
|                 fusedFeatures.push(feature); | ||||
|                 console.log("Adding ", feature," to fusedFeatures") | ||||
|             } | ||||
|         } | ||||
|          | ||||
|  | @ -237,11 +235,19 @@ export class FilteredLayer { | |||
|                    }); | ||||
|                } | ||||
|                 let eventSource = State.state.allElements.addOrGetElement(feature); | ||||
|                 const uiElement = self._showOnPopup(eventSource, feature); | ||||
|                 const popup = L.popup({}, marker).setContent(uiElement.Render()); | ||||
|                 const popup = L.popup({}, marker); | ||||
|                 let uiElement: UIElement; | ||||
|                 let content = undefined; | ||||
|                 marker.bindPopup(popup) | ||||
|                     .on("popupopen", () => { | ||||
|                         uiElement.Activate();    | ||||
| 
 | ||||
|                         if (content === undefined) { | ||||
|                             uiElement = self._showOnPopup(eventSource, feature); | ||||
|                             // Lazily create the content
 | ||||
|                             content = uiElement.Render(); | ||||
|                         } | ||||
|                         popup.setContent(content); | ||||
|                         uiElement.Activate(); | ||||
|                         uiElement.Update(); | ||||
|                     }); | ||||
|                 return marker; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue