forked from MapComplete/MapComplete
refactoring: Remove more obsoleted code, add copyright tab
This commit is contained in:
parent
f8d34648a0
commit
042d400dc4
20 changed files with 44 additions and 342 deletions
|
|
@ -113,7 +113,7 @@ export default class CopyrightPanel extends Combine {
|
|||
|
||||
constructor(state: {
|
||||
layout: LayoutConfig
|
||||
bounds: Store<BBox>
|
||||
mapProperties: { bounds: Store<BBox> }
|
||||
osmConnection: OsmConnection
|
||||
dataIsLoading: Store<boolean>
|
||||
perLayer: ReadonlyMap<string, GeoIndexedStore>
|
||||
|
|
@ -121,7 +121,7 @@ export default class CopyrightPanel extends Combine {
|
|||
const t = Translations.t.general.attribution
|
||||
const layoutToUse = state.layout
|
||||
|
||||
const iconAttributions: BaseUIElement[] = layoutToUse.usedImages.map(
|
||||
const iconAttributions: BaseUIElement[] = Utils.Dedup(layoutToUse.usedImages).map(
|
||||
CopyrightPanel.IconAttribution
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
fieldTypes[field.name + "}"] = field.type;
|
||||
const src = new UIEventSource<string>(initialState[field.name] ?? "");
|
||||
fieldValues[field.name + "}"] = src;
|
||||
onDestroy(src.addCallback(v => {
|
||||
onDestroy(src.addCallback(() => {
|
||||
setFields();
|
||||
}));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,131 +0,0 @@
|
|||
import ThemeIntroductionPanel from "./ThemeIntroductionPanel"
|
||||
import Svg from "../../Svg"
|
||||
import Translations from "../i18n/Translations"
|
||||
import ShareScreen from "./ShareScreen"
|
||||
import MoreScreen from "./MoreScreen"
|
||||
import Constants from "../../Models/Constants"
|
||||
import Combine from "../Base/Combine"
|
||||
import { TabbedComponent } from "../Base/TabbedComponent"
|
||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
||||
import UserDetails, { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
||||
import ScrollableFullScreen from "../Base/ScrollableFullScreen"
|
||||
import BaseUIElement from "../BaseUIElement"
|
||||
import Toggle from "../Input/Toggle"
|
||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
||||
import { Utils } from "../../Utils"
|
||||
import UserRelatedState from "../../Logic/State/UserRelatedState"
|
||||
import Loc from "../../Models/Loc"
|
||||
import FilteredLayer from "../../Models/FilteredLayer"
|
||||
import Hotkeys from "../Base/Hotkeys"
|
||||
|
||||
export default class FullWelcomePaneWithTabs extends ScrollableFullScreen {
|
||||
public static MoreThemesTabIndex = 1
|
||||
|
||||
constructor(
|
||||
isShown: UIEventSource<boolean>,
|
||||
currentTab: UIEventSource<number>,
|
||||
state: {
|
||||
layoutToUse: LayoutConfig
|
||||
osmConnection: OsmConnection
|
||||
featureSwitchShareScreen: UIEventSource<boolean>
|
||||
featureSwitchMoreQuests: UIEventSource<boolean>
|
||||
locationControl: UIEventSource<Loc>
|
||||
featurePipeline: FeaturePipeline
|
||||
backgroundLayer: UIEventSource<BaseLayer>
|
||||
filteredLayers: UIEventSource<FilteredLayer[]>
|
||||
} & UserRelatedState,
|
||||
guistate?: { userInfoIsOpened: UIEventSource<boolean> }
|
||||
) {
|
||||
const layoutToUse = state.layoutToUse
|
||||
super(
|
||||
() => layoutToUse.title.Clone(),
|
||||
() => FullWelcomePaneWithTabs.GenerateContents(state, currentTab, isShown, guistate),
|
||||
"welcome",
|
||||
isShown
|
||||
)
|
||||
}
|
||||
|
||||
private static ConstructBaseTabs(
|
||||
state: {
|
||||
layoutToUse: LayoutConfig
|
||||
osmConnection: OsmConnection
|
||||
featureSwitchShareScreen: UIEventSource<boolean>
|
||||
featureSwitchMoreQuests: UIEventSource<boolean>
|
||||
featurePipeline: FeaturePipeline
|
||||
locationControl: UIEventSource<Loc>
|
||||
backgroundLayer: UIEventSource<BaseLayer>
|
||||
filteredLayers: UIEventSource<FilteredLayer[]>
|
||||
} & UserRelatedState,
|
||||
isShown: UIEventSource<boolean>,
|
||||
currentTab: UIEventSource<number>,
|
||||
guistate?: { userInfoIsOpened: UIEventSource<boolean> }
|
||||
): { header: string | BaseUIElement; content: BaseUIElement }[] {
|
||||
const tabs: { header: string | BaseUIElement; content: BaseUIElement }[] = [
|
||||
{
|
||||
header: `<img src='${state.layoutToUse.icon}'>`,
|
||||
content: new ThemeIntroductionPanel(isShown, currentTab, state, guistate),
|
||||
},
|
||||
]
|
||||
|
||||
if (state.featureSwitchMoreQuests.data) {
|
||||
tabs.push({
|
||||
header: Svg.add_img,
|
||||
content: new Combine([
|
||||
Translations.t.general.morescreen.intro,
|
||||
new MoreScreen(state),
|
||||
]).SetClass("flex flex-col"),
|
||||
})
|
||||
}
|
||||
|
||||
if (state.featureSwitchShareScreen.data) {
|
||||
tabs.push({ header: Svg.share_img, content: new ShareScreen(state) })
|
||||
}
|
||||
|
||||
return tabs
|
||||
}
|
||||
|
||||
private static GenerateContents(
|
||||
state: {
|
||||
layoutToUse: LayoutConfig
|
||||
osmConnection: OsmConnection
|
||||
featureSwitchShareScreen: UIEventSource<boolean>
|
||||
featureSwitchMoreQuests: UIEventSource<boolean>
|
||||
featurePipeline: FeaturePipeline
|
||||
locationControl: UIEventSource<Loc>
|
||||
backgroundLayer: UIEventSource<BaseLayer>
|
||||
filteredLayers: UIEventSource<FilteredLayer[]>
|
||||
} & UserRelatedState,
|
||||
currentTab: UIEventSource<number>,
|
||||
isShown: UIEventSource<boolean>,
|
||||
guistate?: { userInfoIsOpened: UIEventSource<boolean> }
|
||||
) {
|
||||
const tabs = FullWelcomePaneWithTabs.ConstructBaseTabs(state, isShown, currentTab, guistate)
|
||||
const tabsWithAboutMc = [
|
||||
...FullWelcomePaneWithTabs.ConstructBaseTabs(state, isShown, currentTab, guistate),
|
||||
]
|
||||
|
||||
tabsWithAboutMc.push({
|
||||
header: Svg.help,
|
||||
content: new Combine([
|
||||
Translations.t.general.aboutMapcomplete.Subs({
|
||||
osmcha_link: Utils.OsmChaLinkFor(7),
|
||||
}),
|
||||
"<br/>Version " + Constants.vNumber,
|
||||
Hotkeys.generateDocumentationDynamic(),
|
||||
]).SetClass("link-underline"),
|
||||
})
|
||||
|
||||
tabs.forEach((c) => c.content.SetClass("p-4"))
|
||||
tabsWithAboutMc.forEach((c) => c.content.SetClass("p-4"))
|
||||
|
||||
return new Toggle(
|
||||
new TabbedComponent(tabsWithAboutMc, currentTab),
|
||||
new TabbedComponent(tabs, currentTab),
|
||||
state.osmConnection.userDetails.map(
|
||||
(userdetails: UserDetails) =>
|
||||
userdetails.loggedIn &&
|
||||
userdetails.csCount >= Constants.userJourney.mapCompleteHelpUnlock
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -33,9 +33,3 @@ export interface PresetInfo extends PresetConfig {
|
|||
layerToAddTo: FilteredLayer
|
||||
boundsFactor?: 0.25 | number
|
||||
}
|
||||
|
||||
export default class SimpleAddUI extends Combine {
|
||||
constructor(state: SpecialVisualizationState) {
|
||||
super([])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue