MapComplete/UI/BigComponents/LayerControlPanel.ts

48 lines
1.7 KiB
TypeScript
Raw Normal View History

import State from "../../State";
import BackgroundSelector from "./BackgroundSelector";
import LayerSelection from "./LayerSelection";
import Combine from "../Base/Combine";
2021-01-08 02:13:44 +01:00
import ScrollableFullScreen from "../Base/ScrollableFullScreen";
import Translations from "../i18n/Translations";
import {UIEventSource} from "../../Logic/UIEventSource";
2021-06-10 14:05:26 +02:00
import BaseUIElement from "../BaseUIElement";
2021-07-26 15:39:27 +02:00
import Toggle from "../Input/Toggle";
import {ExportDataButton} from "./ExportDataButton";
export default class LayerControlPanel extends ScrollableFullScreen {
constructor(isShown: UIEventSource<boolean>) {
super(LayerControlPanel.GenTitle, LayerControlPanel.GeneratePanel, "layers", isShown);
}
2021-07-26 15:39:27 +02:00
private static GenTitle(): BaseUIElement {
2021-06-10 14:05:26 +02:00
return Translations.t.general.layerSelection.title.Clone().SetClass("text-2xl break-words font-bold p-2")
}
2021-07-26 15:39:27 +02:00
private static GeneratePanel(): BaseUIElement {
const elements: BaseUIElement[] = []
if (State.state.layoutToUse.data.enableBackgroundLayerSelection) {
2021-07-26 15:39:27 +02:00
const backgroundSelector = new BackgroundSelector();
backgroundSelector.SetStyle("margin:1em");
backgroundSelector.onClick(() => {
});
2021-07-26 15:39:27 +02:00
elements.push(backgroundSelector)
}
2021-07-26 15:39:27 +02:00
elements.push(new Toggle(
new LayerSelection(State.state.filteredLayers),
undefined,
State.state.filteredLayers.map(layers => layers.length > 1)
))
elements.push(new Toggle(
new ExportDataButton(),
undefined,
State.state.featureSwitchEnableExport
))
2021-07-26 15:39:27 +02:00
return new Combine(elements).SetClass("flex flex-col")
}
}