2023-06-14 20:39:36 +02:00
|
|
|
import { Store } from "../../Logic/UIEventSource"
|
2020-10-14 12:15:09 +02:00
|
|
|
import Translations from "../i18n/Translations"
|
2023-06-14 20:39:36 +02:00
|
|
|
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
2021-06-12 02:58:32 +02:00
|
|
|
import Toggle from "../Input/Toggle"
|
2022-05-06 12:41:24 +02:00
|
|
|
import BaseUIElement from "../BaseUIElement"
|
2022-11-02 14:44:06 +01:00
|
|
|
import Combine from "../Base/Combine"
|
|
|
|
import Svg from "../../Svg"
|
2023-06-14 20:39:36 +02:00
|
|
|
import { LoginToggle } from "./LoginButton"
|
2022-10-29 03:03:51 +02:00
|
|
|
|
|
|
|
export class EditButton extends Toggle {
|
|
|
|
constructor(osmConnection: OsmConnection, onClick: () => void) {
|
|
|
|
super(
|
2023-05-08 01:55:21 +02:00
|
|
|
new Combine([Svg.pencil_svg()])
|
2022-10-29 03:03:51 +02:00
|
|
|
.SetClass("block relative h-10 w-10 p-2 float-right")
|
|
|
|
.SetStyle("border: 1px solid black; border-radius: 0.7em")
|
|
|
|
.onClick(onClick),
|
|
|
|
undefined,
|
|
|
|
osmConnection.isLoggedIn
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
2020-07-05 18:59:47 +02:00
|
|
|
|
2023-05-09 00:06:51 +02:00
|
|
|
export class SaveButton extends LoginToggle {
|
2022-06-05 02:24:14 +02:00
|
|
|
constructor(
|
|
|
|
value: Store<any>,
|
2023-05-09 00:06:51 +02:00
|
|
|
state: {
|
|
|
|
readonly osmConnection?: OsmConnection
|
|
|
|
readonly featureSwitchUserbadge?: Store<boolean>
|
|
|
|
},
|
2022-06-05 02:24:14 +02:00
|
|
|
textEnabled?: BaseUIElement,
|
|
|
|
textDisabled?: BaseUIElement
|
|
|
|
) {
|
2021-06-12 02:58:32 +02:00
|
|
|
if (value === undefined) {
|
2020-07-05 18:59:47 +02:00
|
|
|
throw "No event source for savebutton, something is wrong"
|
|
|
|
}
|
2021-06-12 02:58:32 +02:00
|
|
|
|
|
|
|
const isSaveable = value.map((v) => v !== false && (v ?? "") !== "")
|
|
|
|
|
2022-05-06 12:41:24 +02:00
|
|
|
const saveEnabled = (textEnabled ?? Translations.t.general.save.Clone()).SetClass(`btn`)
|
|
|
|
const saveDisabled = (textDisabled ?? Translations.t.general.save.Clone()).SetClass(
|
|
|
|
`btn btn-disabled`
|
2021-06-12 02:58:32 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
const save = new Toggle(saveEnabled, saveDisabled, isSaveable)
|
2023-05-09 00:06:51 +02:00
|
|
|
super(save, Translations.t.general.loginToStart, state)
|
2020-07-05 18:59:47 +02:00
|
|
|
}
|
|
|
|
}
|