forked from MapComplete/MapComplete
Use loginToggle, disable upload is gpxApi is offline
This commit is contained in:
parent
16aedfec4a
commit
9b0b87c878
1 changed files with 37 additions and 19 deletions
|
@ -4,30 +4,22 @@ import { FixedInputElement } from "../Input/FixedInputElement"
|
||||||
import Combine from "../Base/Combine"
|
import Combine from "../Base/Combine"
|
||||||
import Translations from "../i18n/Translations"
|
import Translations from "../i18n/Translations"
|
||||||
import { TextField } from "../Input/TextField"
|
import { TextField } from "../Input/TextField"
|
||||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
import { Store, UIEventSource } from "../../Logic/UIEventSource"
|
||||||
import Title from "../Base/Title"
|
import Title from "../Base/Title"
|
||||||
import { SubtleButton } from "../Base/SubtleButton"
|
import { SubtleButton } from "../Base/SubtleButton"
|
||||||
import Svg from "../../Svg"
|
import Svg from "../../Svg"
|
||||||
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
||||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
||||||
import { Translation } from "../i18n/Translation"
|
import { Translation } from "../i18n/Translation"
|
||||||
|
import { LoginToggle } from "../Popup/LoginButton"
|
||||||
|
|
||||||
export default class UploadTraceToOsmUI extends Toggle {
|
export default class UploadTraceToOsmUI extends LoginToggle {
|
||||||
private static createDefault(s: string, defaultValue: string) {
|
|
||||||
if (defaultValue.length < 1) {
|
|
||||||
throw "Default value should have some characters"
|
|
||||||
}
|
|
||||||
if (s === undefined || s === null || s === "") {
|
|
||||||
return defaultValue
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
trace: (title: string) => string,
|
trace: (title: string) => string,
|
||||||
state: {
|
state: {
|
||||||
layoutToUse: LayoutConfig
|
layoutToUse: LayoutConfig
|
||||||
osmConnection: OsmConnection
|
osmConnection: OsmConnection
|
||||||
|
readonly featureSwitchUserbadge: Store<boolean>
|
||||||
},
|
},
|
||||||
options?: {
|
options?: {
|
||||||
whenUploaded?: () => void | Promise<void>
|
whenUploaded?: () => void | Promise<void>
|
||||||
|
@ -119,15 +111,41 @@ export default class UploadTraceToOsmUI extends Toggle {
|
||||||
]).SetClass("flex flex-col p-4 rounded border-2 m-2 border-subtle")
|
]).SetClass("flex flex-col p-4 rounded border-2 m-2 border-subtle")
|
||||||
|
|
||||||
super(
|
super(
|
||||||
new Combine([Svg.confirm_svg().SetClass("w-12 h-12 mr-2"), t.uploadFinished]).SetClass(
|
new Toggle(
|
||||||
"flex p-2 rounded-xl border-2 subtle-border items-center"
|
new Toggle(
|
||||||
),
|
new Combine([
|
||||||
|
Svg.confirm_svg().SetClass("w-12 h-12 mr-2"),
|
||||||
|
t.uploadFinished,
|
||||||
|
]).SetClass("flex p-2 rounded-xl border-2 subtle-border items-center"),
|
||||||
new Toggle(
|
new Toggle(
|
||||||
confirmPanel,
|
confirmPanel,
|
||||||
new SubtleButton(Svg.upload_svg(), t.title).onClick(() => clicked.setData(true)),
|
new SubtleButton(Svg.upload_svg(), t.title).onClick(() =>
|
||||||
|
clicked.setData(true)
|
||||||
|
),
|
||||||
clicked
|
clicked
|
||||||
),
|
),
|
||||||
uploadFinished
|
uploadFinished
|
||||||
|
),
|
||||||
|
new Combine([
|
||||||
|
Svg.invalid_ui().SetClass("w-8 h-8 m-2"),
|
||||||
|
t.gpxServiceOffline.SetClass("p-2"),
|
||||||
|
]).SetClass("flex border alert items-center"),
|
||||||
|
state.osmConnection.gpxServiceIsOnline.map(
|
||||||
|
(serviceState) => serviceState === "online"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
undefined,
|
||||||
|
state
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static createDefault(s: string, defaultValue: string) {
|
||||||
|
if (defaultValue.length < 1) {
|
||||||
|
throw "Default value should have some characters"
|
||||||
|
}
|
||||||
|
if (s === undefined || s === null || s === "") {
|
||||||
|
return defaultValue
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue