UX: improve move wizard
This commit is contained in:
parent
1208e095cf
commit
b21d7967ab
3 changed files with 43 additions and 20 deletions
|
@ -17,11 +17,12 @@
|
||||||
export let bounds: UIEventSource<BBox>;
|
export let bounds: UIEventSource<BBox>;
|
||||||
export let selectedElement: UIEventSource<Feature> | undefined = undefined;
|
export let selectedElement: UIEventSource<Feature> | undefined = undefined;
|
||||||
export let selectedLayer: UIEventSource<LayerConfig> | undefined = undefined;
|
export let selectedLayer: UIEventSource<LayerConfig> | undefined = undefined;
|
||||||
|
|
||||||
|
export let clearAfterView: boolean = true
|
||||||
|
|
||||||
let searchContents: string = ""
|
let searchContents: string = ""
|
||||||
export let triggerSearch: UIEventSource<any> = new UIEventSource<any>(undefined)
|
export let triggerSearch: UIEventSource<any> = new UIEventSource<any>(undefined)
|
||||||
onDestroy(triggerSearch.addCallback(_ => {
|
onDestroy(triggerSearch.addCallback(_ => {
|
||||||
console.log("TriggerRun pinged")
|
|
||||||
performSearch()
|
performSearch()
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
@ -76,7 +77,9 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
searchContents = ""
|
if(clearAfterView){
|
||||||
|
searchContents = ""
|
||||||
|
}
|
||||||
dispatch("searchIsValid", false)
|
dispatch("searchIsValid", false)
|
||||||
dispatch("searchCompleted")
|
dispatch("searchCompleted")
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<script lang="ts">
|
||||||
|
|
||||||
|
import {Square3Stack3dIcon} from "@babeard/svelte-heroicons/solid";
|
||||||
|
import MapControlButton from "../Base/MapControlButton.svelte";
|
||||||
|
import ThemeViewState from "../../Models/ThemeViewState";
|
||||||
|
|
||||||
|
export let state: ThemeViewState
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<MapControlButton on:click={() => state.guistate.backgroundLayerSelectionIsOpened.setData(true)}>
|
||||||
|
<Square3Stack3dIcon class="w-6 h-6"/>
|
||||||
|
</MapControlButton>
|
|
@ -1,27 +1,28 @@
|
||||||
import { SubtleButton } from "../Base/SubtleButton"
|
import {SubtleButton} from "../Base/SubtleButton"
|
||||||
import Combine from "../Base/Combine"
|
import Combine from "../Base/Combine"
|
||||||
import Svg from "../../Svg"
|
import Svg from "../../Svg"
|
||||||
import Toggle from "../Input/Toggle"
|
import Toggle from "../Input/Toggle"
|
||||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
import {UIEventSource} from "../../Logic/UIEventSource"
|
||||||
import Translations from "../i18n/Translations"
|
import Translations from "../i18n/Translations"
|
||||||
import { VariableUiElement } from "../Base/VariableUIElement"
|
import {VariableUiElement} from "../Base/VariableUIElement"
|
||||||
import { Translation } from "../i18n/Translation"
|
import {Translation} from "../i18n/Translation"
|
||||||
import BaseUIElement from "../BaseUIElement"
|
import BaseUIElement from "../BaseUIElement"
|
||||||
import { GeoOperations } from "../../Logic/GeoOperations"
|
import {GeoOperations} from "../../Logic/GeoOperations"
|
||||||
import ChangeLocationAction from "../../Logic/Osm/Actions/ChangeLocationAction"
|
import ChangeLocationAction from "../../Logic/Osm/Actions/ChangeLocationAction"
|
||||||
import MoveConfig from "../../Models/ThemeConfig/MoveConfig"
|
import MoveConfig from "../../Models/ThemeConfig/MoveConfig"
|
||||||
import ChangeTagAction from "../../Logic/Osm/Actions/ChangeTagAction"
|
import ChangeTagAction from "../../Logic/Osm/Actions/ChangeTagAction"
|
||||||
import { And } from "../../Logic/Tags/And"
|
import {And} from "../../Logic/Tags/And"
|
||||||
import { Tag } from "../../Logic/Tags/Tag"
|
import {Tag} from "../../Logic/Tags/Tag"
|
||||||
import { LoginToggle } from "./LoginButton"
|
import {LoginToggle} from "./LoginButton"
|
||||||
import { SpecialVisualizationState } from "../SpecialVisualization"
|
import {SpecialVisualizationState} from "../SpecialVisualization"
|
||||||
import { Feature, Point } from "geojson"
|
import {Feature, Point} from "geojson"
|
||||||
import { OsmTags } from "../../Models/OsmFeature"
|
import {OsmTags} from "../../Models/OsmFeature"
|
||||||
import SvelteUIElement from "../Base/SvelteUIElement"
|
import SvelteUIElement from "../Base/SvelteUIElement"
|
||||||
import { MapProperties } from "../../Models/MapProperties"
|
import {MapProperties} from "../../Models/MapProperties"
|
||||||
import LocationInput from "../InputElement/Helpers/LocationInput.svelte"
|
import LocationInput from "../InputElement/Helpers/LocationInput.svelte"
|
||||||
import Geosearch from "../BigComponents/Geosearch.svelte"
|
import Geosearch from "../BigComponents/Geosearch.svelte"
|
||||||
import Constants from "../../Models/Constants"
|
import Constants from "../../Models/Constants"
|
||||||
|
import OpenBackgroundSelectorButton from "../BigComponents/OpenBackgroundSelectorButton.svelte";
|
||||||
|
|
||||||
interface MoveReason {
|
interface MoveReason {
|
||||||
text: Translation | string
|
text: Translation | string
|
||||||
|
@ -127,19 +128,26 @@ export default class MoveWizard extends Toggle {
|
||||||
const mapProperties: Partial<MapProperties> = {
|
const mapProperties: Partial<MapProperties> = {
|
||||||
minzoom: new UIEventSource(reason.minZoom),
|
minzoom: new UIEventSource(reason.minZoom),
|
||||||
zoom: new UIEventSource(reason?.startZoom ?? 16),
|
zoom: new UIEventSource(reason?.startZoom ?? 16),
|
||||||
location: new UIEventSource({ lon, lat }),
|
location: new UIEventSource({lon, lat}),
|
||||||
bounds: new UIEventSource(undefined),
|
bounds: new UIEventSource(undefined),
|
||||||
rasterLayer: state.mapProperties.rasterLayer
|
rasterLayer: state.mapProperties.rasterLayer
|
||||||
}
|
}
|
||||||
const value = new UIEventSource<{ lon: number; lat: number }>(undefined)
|
const value = new UIEventSource<{ lon: number; lat: number }>(undefined)
|
||||||
const locationInput = new SvelteUIElement(LocationInput, {
|
const locationInput =
|
||||||
mapProperties,
|
new Combine([
|
||||||
value,
|
|
||||||
})
|
new SvelteUIElement(LocationInput, {
|
||||||
|
mapProperties,
|
||||||
|
value,
|
||||||
|
}).SetClass("w-full h-full"),
|
||||||
|
new SvelteUIElement(OpenBackgroundSelectorButton, {state}).SetClass("absolute bottom-0 left-0")
|
||||||
|
|
||||||
|
]).SetClass("relative w-full h-full")
|
||||||
|
|
||||||
|
|
||||||
let searchPanel: BaseUIElement = undefined
|
let searchPanel: BaseUIElement = undefined
|
||||||
if (reason.includeSearch) {
|
if (reason.includeSearch) {
|
||||||
searchPanel = new SvelteUIElement(Geosearch, { bounds: mapProperties.bounds })
|
searchPanel = new SvelteUIElement(Geosearch, {bounds: mapProperties.bounds, clearAfterView: false})
|
||||||
}
|
}
|
||||||
|
|
||||||
locationInput.SetStyle("height: 17.5rem")
|
locationInput.SetStyle("height: 17.5rem")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue