forked from MapComplete/MapComplete
		
	Fix 'next step' for move wizard
This commit is contained in:
		
							parent
							
								
									e9268bfc49
								
							
						
					
					
						commit
						3e680bb63b
					
				
					 1 changed files with 40 additions and 38 deletions
				
			
		|  | @ -1,40 +1,39 @@ | |||
| <script lang="ts"> | ||||
| 
 | ||||
|   import { UIEventSource } from "../../Logic/UIEventSource"; | ||||
|   import type { MoveReason } from "./MoveWizardState"; | ||||
|   import { MoveWizardState } from "./MoveWizardState"; | ||||
|   import { UIEventSource } from "../../Logic/UIEventSource" | ||||
|   import type { MoveReason } from "./MoveWizardState" | ||||
|   import { MoveWizardState } from "./MoveWizardState" | ||||
| 
 | ||||
|   import LayerConfig from "../../Models/ThemeConfig/LayerConfig"; | ||||
|   import ToSvelte from "../Base/ToSvelte.svelte"; | ||||
|   import Tr from "../Base/Tr.svelte"; | ||||
|   import Translations from "../i18n/Translations"; | ||||
|   import Move from "../../assets/svg/Move.svelte"; | ||||
|   import Move_not_allowed from "../../assets/svg/Move_not_allowed.svelte"; | ||||
|   import type { SpecialVisualizationState } from "../SpecialVisualization"; | ||||
|   import { XCircleIcon } from "@babeard/svelte-heroicons/solid"; | ||||
|   import type { MapProperties } from "../../Models/MapProperties"; | ||||
|   import type { Feature, Point } from "geojson"; | ||||
|   import { GeoOperations } from "../../Logic/GeoOperations"; | ||||
|   import LocationInput from "../InputElement/Helpers/LocationInput.svelte"; | ||||
|   import OpenBackgroundSelectorButton from "../BigComponents/OpenBackgroundSelectorButton.svelte"; | ||||
|   import Geosearch from "../BigComponents/Geosearch.svelte"; | ||||
|   import Move_confirm from "../../assets/svg/Move_confirm.svelte"; | ||||
|   import If from "../Base/If.svelte"; | ||||
|   import Constants from "../../Models/Constants"; | ||||
|   import LayerConfig from "../../Models/ThemeConfig/LayerConfig" | ||||
|   import ToSvelte from "../Base/ToSvelte.svelte" | ||||
|   import Tr from "../Base/Tr.svelte" | ||||
|   import Translations from "../i18n/Translations" | ||||
|   import Move from "../../assets/svg/Move.svelte" | ||||
|   import Move_not_allowed from "../../assets/svg/Move_not_allowed.svelte" | ||||
|   import type { SpecialVisualizationState } from "../SpecialVisualization" | ||||
|   import { XCircleIcon } from "@babeard/svelte-heroicons/solid" | ||||
|   import type { MapProperties } from "../../Models/MapProperties" | ||||
|   import type { Feature, Point } from "geojson" | ||||
|   import { GeoOperations } from "../../Logic/GeoOperations" | ||||
|   import LocationInput from "../InputElement/Helpers/LocationInput.svelte" | ||||
|   import OpenBackgroundSelectorButton from "../BigComponents/OpenBackgroundSelectorButton.svelte" | ||||
|   import Geosearch from "../BigComponents/Geosearch.svelte" | ||||
|   import If from "../Base/If.svelte" | ||||
|   import Constants from "../../Models/Constants" | ||||
| 
 | ||||
| 
 | ||||
|   export let state: SpecialVisualizationState; | ||||
|   export let state: SpecialVisualizationState | ||||
| 
 | ||||
|   export let layer: LayerConfig; | ||||
|   export let featureToMove: Feature<Point>; | ||||
|   export let layer: LayerConfig | ||||
|   export let featureToMove: Feature<Point> | ||||
| 
 | ||||
|   let id: string = featureToMove.properties.id; | ||||
|   let currentStep: "start" | "reason" | "pick_location" | "moved" = "start"; | ||||
|   const t = Translations.t.move; | ||||
|   const reason = new UIEventSource<MoveReason>(undefined); | ||||
|   let [lon, lat] = GeoOperations.centerpointCoordinates(featureToMove); | ||||
|   let id: string = featureToMove.properties.id | ||||
|   let currentStep: "start" | "reason" | "pick_location" | "moved" = "start" | ||||
|   const t = Translations.t.move | ||||
|   const reason = new UIEventSource<MoveReason>(undefined) | ||||
|   let [lon, lat] = GeoOperations.centerpointCoordinates(featureToMove) | ||||
| 
 | ||||
|   let newLocation = new UIEventSource<{ lon: number; lat: number }>(undefined); | ||||
|   let newLocation = new UIEventSource<{ lon: number; lat: number }>(undefined) | ||||
| 
 | ||||
|   function initMapProperties() { | ||||
|     return <any>{ | ||||
|  | @ -45,14 +44,14 @@ | |||
|       location: new UIEventSource({ lon, lat }), | ||||
|       minzoom: new UIEventSource($reason.minZoom), | ||||
|       rasterLayer: state.mapProperties.rasterLayer, | ||||
|       zoom: new UIEventSource($reason?.startZoom ?? 16) | ||||
|     }; | ||||
|       zoom: new UIEventSource($reason?.startZoom ?? 16), | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   let moveWizardState = new MoveWizardState(id, layer.allowMove, state); | ||||
|   let notAllowed = moveWizardState.moveDisallowedReason; | ||||
|   let currentMapProperties: MapProperties = undefined; | ||||
|   let moveWizardState = new MoveWizardState(id, layer.allowMove, state) | ||||
|   let notAllowed = moveWizardState.moveDisallowedReason | ||||
|   let currentMapProperties: MapProperties = undefined | ||||
| </script> | ||||
| {#if moveWizardState.reasons.length > 0} | ||||
| 
 | ||||
|  | @ -82,8 +81,8 @@ | |||
|       <Tr cls="text-lg font-bold" t={t.whyMove} /> | ||||
|       {#each moveWizardState.reasons as reasonSpec} | ||||
|         <button on:click={() => {reason.setData(reasonSpec); currentStep = "pick_location"}}> | ||||
|           <ToSvelte  construct={reasonSpec.icon.SetClass("w-16 h-16 pr-2")} /> | ||||
|           <Tr t={reasonSpec.text} /> | ||||
|           <ToSvelte construct={reasonSpec.icon.SetClass("w-16 h-16 pr-2")} /> | ||||
|           <Tr t={Translations.T(reasonSpec.text)} /> | ||||
|         </button> | ||||
|       {/each} | ||||
|     </div> | ||||
|  | @ -110,7 +109,10 @@ | |||
|         <If condition={currentMapProperties.zoom.mapD(zoom => zoom >= Constants.minZoomLevelToAddNewPoint)}> | ||||
| 
 | ||||
|           <button class="flex flex primary w-full" | ||||
|                   on:click={() => {moveWizardState.moveFeature(newLocation.data, reason.data, featureToMove)}}> | ||||
|                   on:click={() => { | ||||
|                     moveWizardState.moveFeature(newLocation.data, reason.data, featureToMove); | ||||
|                     currentStep = "moved" | ||||
|                     }}> | ||||
|             <Move class="w-6 h-6 mr-2" /> | ||||
|             <Tr t={t.confirmMove} /> | ||||
|           </button> | ||||
|  | @ -135,7 +137,7 @@ | |||
|     <div class="flex flex-col"> | ||||
|       <Tr cls="thanks" t={t.pointIsMoved} /> | ||||
|       <button on:click={() => {currentStep = "reason"}}> | ||||
|         <Move /> | ||||
|         <Move class="w-6 h-6 pr-2" /> | ||||
|         <Tr t={t.inviteToMoveAgain} /> | ||||
|       </button> | ||||
|     </div> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue