This repository has been archived on 2020-09-30. You can view files and clone it, but cannot push or open issues or pull requests.
odyfive/src/ui/UI.tsx

28 lines
719 B
TypeScript

import React from "react";
import { useSelector } from "react-redux";
import { GameStore } from "~store/state";
import { UILayer, LayerList } from "~store/ui/state";
import MapEditorUI from "./MapEditor";
function renderLayer(data: UILayer) {
switch (data.type) {
case "MapEditor":
return <MapEditorUI />;
default:
throw new Error("unknown or invalid ui layer");
}
}
export default function UI() {
const layers = useSelector<GameStore, LayerList>((state) => state.ui.layers);
return (
<div id="ui">
{layers.map(({ id, data, visible }) => (
<div key={id} style={{ display: visible ? "" : "none" }}>
{renderLayer(data)}
</div>
))}
</div>
);
}