2023-01-06 03:46:10 +01:00
|
|
|
import Combine from "../Base/Combine"
|
|
|
|
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
2023-01-11 05:01:48 +01:00
|
|
|
import { Store } from "../../Logic/UIEventSource"
|
2023-01-06 03:46:10 +01:00
|
|
|
import { BBox } from "../../Logic/BBox"
|
|
|
|
import Loc from "../../Models/Loc"
|
|
|
|
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
|
|
|
import Translations from "../i18n/Translations"
|
|
|
|
import { SubtleButton } from "../Base/SubtleButton"
|
|
|
|
import Svg from "../../Svg"
|
|
|
|
import { Utils } from "../../Utils"
|
|
|
|
import { MapillaryLink } from "./MapillaryLink"
|
|
|
|
import { OpenIdEditor, OpenJosm } from "./CopyrightPanel"
|
2023-01-11 05:01:48 +01:00
|
|
|
import Toggle from "../Input/Toggle"
|
2023-02-09 02:45:19 +01:00
|
|
|
import ScrollableFullScreen from "../Base/ScrollableFullScreen"
|
|
|
|
import { DefaultGuiState } from "../DefaultGuiState"
|
2023-01-11 05:01:48 +01:00
|
|
|
|
|
|
|
export class BackToThemeOverview extends Toggle {
|
|
|
|
constructor(
|
|
|
|
state: {
|
|
|
|
readonly featureSwitchMoreQuests: Store<boolean>
|
|
|
|
},
|
|
|
|
options: {
|
|
|
|
imgSize: string
|
|
|
|
}
|
|
|
|
) {
|
|
|
|
const t = Translations.t.general
|
|
|
|
const button = new SubtleButton(Svg.add_ui(), t.backToIndex, options).onClick(() => {
|
|
|
|
const path = window.location.href.split("/")
|
|
|
|
path.pop()
|
|
|
|
path.push("index.html")
|
|
|
|
window.location.href = path.join("/")
|
|
|
|
})
|
|
|
|
|
|
|
|
super(button, undefined, state.featureSwitchMoreQuests)
|
|
|
|
}
|
|
|
|
}
|
2023-01-06 03:46:10 +01:00
|
|
|
|
|
|
|
export class ActionButtons extends Combine {
|
|
|
|
constructor(state: {
|
|
|
|
readonly layoutToUse: LayoutConfig
|
|
|
|
readonly currentBounds: Store<BBox>
|
|
|
|
readonly locationControl: Store<Loc>
|
|
|
|
readonly osmConnection: OsmConnection
|
2023-01-11 05:01:48 +01:00
|
|
|
readonly featureSwitchMoreQuests: Store<boolean>
|
2023-03-28 05:13:48 +02:00
|
|
|
readonly defaultGuiState: DefaultGuiState
|
2023-01-06 03:46:10 +01:00
|
|
|
}) {
|
|
|
|
const imgSize = "h-6 w-6"
|
|
|
|
const iconStyle = "height: 1.5rem; width: 1.5rem"
|
|
|
|
const t = Translations.t.general.attribution
|
|
|
|
|
|
|
|
super([
|
2023-01-11 05:01:48 +01:00
|
|
|
new BackToThemeOverview(state, { imgSize }),
|
|
|
|
|
2023-01-06 03:46:10 +01:00
|
|
|
new SubtleButton(Svg.liberapay_ui(), t.donate, {
|
|
|
|
url: "https://liberapay.com/pietervdvn/",
|
|
|
|
newTab: true,
|
|
|
|
imgSize,
|
|
|
|
}),
|
|
|
|
new SubtleButton(Svg.bug_ui(), t.openIssueTracker, {
|
|
|
|
url: "https://github.com/pietervdvn/MapComplete/issues",
|
|
|
|
newTab: true,
|
|
|
|
imgSize,
|
|
|
|
}),
|
|
|
|
new SubtleButton(
|
|
|
|
Svg.statistics_ui(),
|
|
|
|
t.openOsmcha.Subs({ theme: state.layoutToUse.title }),
|
|
|
|
{
|
|
|
|
url: Utils.OsmChaLinkFor(31, state.layoutToUse.id),
|
|
|
|
newTab: true,
|
|
|
|
imgSize,
|
|
|
|
}
|
|
|
|
),
|
|
|
|
new SubtleButton(Svg.mastodon_ui(), t.followOnMastodon, {
|
|
|
|
url: "https://en.osm.town/@MapComplete",
|
|
|
|
newTab: true,
|
|
|
|
imgSize,
|
|
|
|
}),
|
|
|
|
new OpenIdEditor(state, iconStyle),
|
|
|
|
new MapillaryLink(state, iconStyle),
|
|
|
|
new OpenJosm(state, iconStyle).SetClass("hidden-on-mobile"),
|
2023-02-09 02:45:19 +01:00
|
|
|
new SubtleButton(
|
|
|
|
Svg.translate_ui().SetStyle(iconStyle),
|
|
|
|
Translations.t.translations.activateButton
|
|
|
|
).onClick(() => {
|
|
|
|
ScrollableFullScreen.collapse()
|
2023-03-28 05:13:48 +02:00
|
|
|
state.defaultGuiState.userInfoIsOpened.setData(true)
|
|
|
|
state.defaultGuiState.userInfoFocusedQuestion.setData("translation-mode")
|
2023-02-09 02:45:19 +01:00
|
|
|
}),
|
2023-01-06 03:46:10 +01:00
|
|
|
])
|
|
|
|
this.SetClass("block w-full link-no-underline")
|
|
|
|
}
|
|
|
|
}
|