forked from MapComplete/MapComplete
Refactoring: fix filters, remove obsolete code
This commit is contained in:
parent
0241f89d3d
commit
97aaa8e941
9 changed files with 122 additions and 302 deletions
|
@ -45,7 +45,7 @@
|
|||
/*If no snapping needed: the value is simply the map location;
|
||||
* If snapping is needed: the value will be set later on by the snapping feature source
|
||||
* */
|
||||
location: snapToLayers.length === 0 ? value : new UIEventSource<{ lon: number; lat: number }>(coordinate),
|
||||
location: snapToLayers?.length > 0 ? new UIEventSource<{ lon: number; lat: number }>(coordinate) :value,
|
||||
bounds: new UIEventSource<BBox>(undefined),
|
||||
allowMoving: new UIEventSource<boolean>(true),
|
||||
allowZooming: new UIEventSource<boolean>(true),
|
||||
|
|
|
@ -17,6 +17,7 @@ import { Tag } from "../../Logic/Tags/Tag"
|
|||
import { SpecialVisualizationState } from "../SpecialVisualization"
|
||||
import { Feature } from "geojson"
|
||||
import { FixedUiElement } from "../Base/FixedUiElement"
|
||||
import Combine from "../Base/Combine"
|
||||
|
||||
/*
|
||||
* The SimpleAddUI is a single panel, which can have multiple states:
|
||||
|
@ -33,83 +34,8 @@ export interface PresetInfo extends PresetConfig {
|
|||
boundsFactor?: 0.25 | number
|
||||
}
|
||||
|
||||
export default class SimpleAddUI extends Toggle {
|
||||
export default class SimpleAddUI extends Combine {
|
||||
constructor(state: SpecialVisualizationState) {
|
||||
const takeLocationFrom = state.mapProperties.lastClickLocation
|
||||
const selectedPreset = new UIEventSource<PresetInfo>(undefined)
|
||||
|
||||
takeLocationFrom.addCallback((_) => selectedPreset.setData(undefined))
|
||||
|
||||
async function createNewPoint(
|
||||
tags: Tag[],
|
||||
location: { lat: number; lon: number },
|
||||
snapOntoWay?: OsmWay
|
||||
): Promise<void> {
|
||||
if (snapOntoWay) {
|
||||
tags.push(new Tag("_referencing_ways", "way/" + snapOntoWay.id))
|
||||
}
|
||||
const newElementAction = new CreateNewNodeAction(tags, location.lat, location.lon, {
|
||||
theme: state.layout?.id ?? "unkown",
|
||||
changeType: "create",
|
||||
snapOnto: snapOntoWay,
|
||||
})
|
||||
await state.changes.applyAction(newElementAction)
|
||||
selectedPreset.setData(undefined)
|
||||
const selectedFeature: Feature = state.indexedFeatures.featuresById.data.get(
|
||||
newElementAction.newElementId
|
||||
)
|
||||
state.selectedElement.setData(selectedFeature)
|
||||
Hash.hash.setData(newElementAction.newElementId)
|
||||
}
|
||||
|
||||
const addUi = new VariableUiElement(
|
||||
selectedPreset.map((preset) => {
|
||||
function confirm(
|
||||
tags: any[],
|
||||
location: { lat: number; lon: number },
|
||||
snapOntoWayId?: WayId
|
||||
) {
|
||||
if (snapOntoWayId === undefined) {
|
||||
createNewPoint(tags, location, undefined)
|
||||
} else {
|
||||
OsmObject.DownloadObject(snapOntoWayId).addCallbackAndRunD((way) => {
|
||||
createNewPoint(tags, location, way)
|
||||
return true
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function cancel() {
|
||||
selectedPreset.setData(undefined)
|
||||
}
|
||||
|
||||
const message = Translations.t.general.add.addNew.Subs(
|
||||
{ category: preset.name },
|
||||
preset.name["context"]
|
||||
)
|
||||
return new FixedUiElement("ConfirmLocationOfPoint...") /*ConfirmLocationOfPoint(
|
||||
state,
|
||||
filterViewIsOpened,
|
||||
preset,
|
||||
message,
|
||||
takeLocationFrom.data,
|
||||
confirm,
|
||||
cancel,
|
||||
() => {
|
||||
selectedPreset.setData(undefined)
|
||||
},
|
||||
{
|
||||
cancelIcon: Svg.back_svg(),
|
||||
cancelText: Translations.t.general.add.backToSelect,
|
||||
}
|
||||
)*/
|
||||
})
|
||||
)
|
||||
|
||||
super(
|
||||
new Loading(Translations.t.general.add.stillLoading).SetClass("alert"),
|
||||
addUi,
|
||||
state.dataIsLoading
|
||||
)
|
||||
super([])
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue