forked from MapComplete/MapComplete
Lots of refactoring, first version of the import helper
This commit is contained in:
parent
612b8136ad
commit
3402ac0954
54 changed files with 1104 additions and 315 deletions
|
@ -3,19 +3,20 @@ import TagRenderingQuestion from "./TagRenderingQuestion";
|
|||
import Translations from "../i18n/Translations";
|
||||
import Combine from "../Base/Combine";
|
||||
import TagRenderingAnswer from "./TagRenderingAnswer";
|
||||
import State from "../../State";
|
||||
import Svg from "../../Svg";
|
||||
import Toggle from "../Input/Toggle";
|
||||
import BaseUIElement from "../BaseUIElement";
|
||||
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig";
|
||||
import {Unit} from "../../Models/Unit";
|
||||
import Lazy from "../Base/Lazy";
|
||||
import {OsmConnection} from "../../Logic/Osm/OsmConnection";
|
||||
|
||||
export default class EditableTagRendering extends Toggle {
|
||||
|
||||
constructor(tags: UIEventSource<any>,
|
||||
configuration: TagRenderingConfig,
|
||||
units: Unit [],
|
||||
state,
|
||||
options: {
|
||||
editMode?: UIEventSource<boolean>,
|
||||
innerElementClasses?: string
|
||||
|
@ -32,7 +33,7 @@ export default class EditableTagRendering extends Toggle {
|
|||
super(
|
||||
new Lazy(() => {
|
||||
const editMode = options.editMode ?? new UIEventSource<boolean>(false)
|
||||
const rendering = EditableTagRendering.CreateRendering(tags, configuration, units, editMode);
|
||||
const rendering = EditableTagRendering.CreateRendering(state, tags, configuration, units, editMode);
|
||||
rendering.SetClass(options.innerElementClasses)
|
||||
return rendering
|
||||
}),
|
||||
|
@ -41,12 +42,12 @@ export default class EditableTagRendering extends Toggle {
|
|||
)
|
||||
}
|
||||
|
||||
private static CreateRendering(tags: UIEventSource<any>, configuration: TagRenderingConfig, units: Unit[], editMode: UIEventSource<boolean>): BaseUIElement {
|
||||
const answer: BaseUIElement = new TagRenderingAnswer(tags, configuration, State.state)
|
||||
private static CreateRendering(state: {featureSwitchUserbadge?: UIEventSource<boolean>, osmConnection: OsmConnection}, tags: UIEventSource<any>, configuration: TagRenderingConfig, units: Unit[], editMode: UIEventSource<boolean>): BaseUIElement {
|
||||
const answer: BaseUIElement = new TagRenderingAnswer(tags, configuration, state)
|
||||
answer.SetClass("w-full")
|
||||
let rendering = answer;
|
||||
|
||||
if (configuration.question !== undefined && State.state?.featureSwitchUserbadge?.data) {
|
||||
if (configuration.question !== undefined && state?.featureSwitchUserbadge?.data) {
|
||||
// We have a question and editing is enabled
|
||||
const answerWithEditButton = new Combine([answer,
|
||||
new Toggle(new Combine([Svg.pencil_ui()]).SetClass("block relative h-10 w-10 p-2 float-right").SetStyle("border: 1px solid black; border-radius: 0.7em")
|
||||
|
@ -54,12 +55,12 @@ export default class EditableTagRendering extends Toggle {
|
|||
editMode.setData(true);
|
||||
}),
|
||||
undefined,
|
||||
State.state.osmConnection.isLoggedIn)
|
||||
state.osmConnection.isLoggedIn)
|
||||
]).SetClass("flex justify-between w-full")
|
||||
|
||||
|
||||
const question = new Lazy(() =>
|
||||
new TagRenderingQuestion(tags, configuration,
|
||||
new TagRenderingQuestion(tags, configuration,state,
|
||||
{
|
||||
units: units,
|
||||
cancelButton: Translations.t.general.cancel.Clone()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue