forked from MapComplete/MapComplete
		
	Reset the add point dialog when the popup is closed
This commit is contained in:
		
							parent
							
								
									39711373cd
								
							
						
					
					
						commit
						8e15f8488a
					
				
					 3 changed files with 29 additions and 8 deletions
				
			
		|  | @ -428,11 +428,12 @@ export class InitUiElements { | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |             const newPointDialogIsShown = new UIEventSource<boolean>(false); | ||||||
|             const addNewPoint = new ScrollableFullScreen( |             const addNewPoint = new ScrollableFullScreen( | ||||||
|                 () => Translations.t.general.add.title.Clone(), |                 () => Translations.t.general.add.title.Clone(), | ||||||
|                 () => new SimpleAddUI(), |                 () => new SimpleAddUI(newPointDialogIsShown), | ||||||
|                 "new"); |                 "new", | ||||||
| 
 |                 newPointDialogIsShown) | ||||||
|             addNewPoint.isShown.addCallback(isShown => { |             addNewPoint.isShown.addCallback(isShown => { | ||||||
|                 if (!isShown) { |                 if (!isShown) { | ||||||
|                     State.state.LastClickLocation.setData(undefined) |                     State.state.LastClickLocation.setData(undefined) | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ import { Utils } from "../Utils"; | ||||||
| 
 | 
 | ||||||
| export default class Constants { | export default class Constants { | ||||||
|      |      | ||||||
|     public static vNumber = "0.6.6b"; |     public static vNumber = "0.6.6c"; | ||||||
| 
 | 
 | ||||||
|     // The user journey states thresholds when a new feature gets unlocked
 |     // The user journey states thresholds when a new feature gets unlocked
 | ||||||
|     public static userJourney = { |     public static userJourney = { | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ export default class SimpleAddUI extends UIElement { | ||||||
|     private readonly goToInboxButton: UIElement = new SubtleButton(Svg.envelope_ui(), |     private readonly goToInboxButton: UIElement = new SubtleButton(Svg.envelope_ui(), | ||||||
|         Translations.t.general.goToInbox, {url: "https://www.openstreetmap.org/messages/inbox", newTab: false}); |         Translations.t.general.goToInbox, {url: "https://www.openstreetmap.org/messages/inbox", newTab: false}); | ||||||
| 
 | 
 | ||||||
|     constructor() { |     constructor(isShown: UIEventSource<boolean>) { | ||||||
|         super(State.state.locationControl.map(loc => loc.zoom)); |         super(State.state.locationControl.map(loc => loc.zoom)); | ||||||
|         const self = this; |         const self = this; | ||||||
|         this.ListenTo(Locale.language); |         this.ListenTo(Locale.language); | ||||||
|  | @ -64,6 +64,18 @@ export default class SimpleAddUI extends UIElement { | ||||||
|             State.state.layerControlIsOpened.setData(true); |             State.state.layerControlIsOpened.setData(true); | ||||||
|         }) |         }) | ||||||
|          |          | ||||||
|  |         // IS shown is the state of the dialog - we reset the choice if the dialog dissappears
 | ||||||
|  |         isShown.addCallback(isShown =>  | ||||||
|  |         { | ||||||
|  |             if(!isShown){ | ||||||
|  |                 self._confirmPreset.setData(undefined) | ||||||
|  |             } | ||||||
|  |         }) | ||||||
|  |         // If the click location changes, we reset the dialog as well
 | ||||||
|  |         State.state.LastClickLocation.addCallback(() => { | ||||||
|  |             self._confirmPreset.setData(undefined) | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     InnerRender(): string { |     InnerRender(): string { | ||||||
|  | @ -143,7 +155,9 @@ export default class SimpleAddUI extends UIElement { | ||||||
|                 "<b>", |                 "<b>", | ||||||
|                 Translations.t.general.add.confirmButton.Subs({category: preset.name}), |                 Translations.t.general.add.confirmButton.Subs({category: preset.name}), | ||||||
|                 "</b>"])).SetClass("break-words"); |                 "</b>"])).SetClass("break-words"); | ||||||
|         confirmButton.onClick(this.CreatePoint(preset.tags)); |         confirmButton.onClick( | ||||||
|  |             this.CreatePoint(preset.tags) | ||||||
|  |         ); | ||||||
| 
 | 
 | ||||||
|         if (!this._confirmPreset.data.layerToAddTo.isDisplayed.data) { |         if (!this._confirmPreset.data.layerToAddTo.isDisplayed.data) { | ||||||
|             return new Combine([ |             return new Combine([ | ||||||
|  | @ -158,7 +172,7 @@ export default class SimpleAddUI extends UIElement { | ||||||
|         let tagInfo = ""; |         let tagInfo = ""; | ||||||
|         const csCount = State.state.osmConnection.userDetails.data.csCount; |         const csCount = State.state.osmConnection.userDetails.data.csCount; | ||||||
|         if (csCount > Constants.userJourney.tagsVisibleAt) { |         if (csCount > Constants.userJourney.tagsVisibleAt) { | ||||||
|             tagInfo = this._confirmPreset.data.tags.map(t => t.asHumanString(csCount > Constants.userJourney.tagsVisibleAndWikiLinked, true, {})).join("&"); |             tagInfo = this._confirmPreset.data.tags.map(t => t.asHumanString(csCount > Constants.userJourney.tagsVisibleAndWikiLinked, true)).join("&"); | ||||||
|             tagInfo = `<br/>More information about the preset: ${tagInfo}` |             tagInfo = `<br/>More information about the preset: ${tagInfo}` | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | @ -186,7 +200,7 @@ export default class SimpleAddUI extends UIElement { | ||||||
|                 const csCount = State.state.osmConnection.userDetails.data.csCount; |                 const csCount = State.state.osmConnection.userDetails.data.csCount; | ||||||
|                 let tagInfo = undefined; |                 let tagInfo = undefined; | ||||||
|                 if (csCount > Constants.userJourney.tagsVisibleAt) { |                 if (csCount > Constants.userJourney.tagsVisibleAt) { | ||||||
|                     const presets = preset.tags.map(t => new Combine ([t.asHumanString(false, true, {}), " "]).SetClass("subtle break-words") ) |                     const presets = preset.tags.map(t => new Combine([t.asHumanString(false, true), " "]).SetClass("subtle break-words")) | ||||||
|                     tagInfo = new Combine(presets) |                     tagInfo = new Combine(presets) | ||||||
|                 } |                 } | ||||||
|                 const button: UIElement = |                 const button: UIElement = | ||||||
|  | @ -220,11 +234,17 @@ export default class SimpleAddUI extends UIElement { | ||||||
| 
 | 
 | ||||||
|     private CreatePoint(tags: Tag[]) { |     private CreatePoint(tags: Tag[]) { | ||||||
|         return () => { |         return () => { | ||||||
|  |             console.log("Create Point Triggered") | ||||||
|             const loc = State.state.LastClickLocation.data; |             const loc = State.state.LastClickLocation.data; | ||||||
|             let feature = State.state.changes.createElement(tags, loc.lat, loc.lon); |             let feature = State.state.changes.createElement(tags, loc.lat, loc.lon); | ||||||
|             State.state.selectedElement.setData(feature); |             State.state.selectedElement.setData(feature); | ||||||
|  |             this._confirmPreset.setData(undefined); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public OnClose(){ | ||||||
|  |         console.log("On close triggered") | ||||||
|  |         this._confirmPreset.setData(undefined) | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue