mqtt-control-map/src/components/UiItems/index.js
uwap 0a027fd7c2 Completely rewrite the UI Components
to a new functional way of defining them with advantages towards generating docs and a potential editor functionality
2018-11-10 01:34:31 +01:00

43 lines
906 B
JavaScript

// @flow
import Toggle from "./Toggle";
import DropDown from "./DropDown";
import Section from "./Section";
import Link from "./Link";
import Slider from "./Slider";
import Text from "./Text";
import Progress from "./Progress";
import type { ControlUI } from "config/flowtypes";
const Control = ({item}: {item: ControlUI}) => {
switch (item.type) {
case "toggle": {
return Toggle.component(item);
}
case "dropDown": {
return DropDown.component(item);
}
case "section": {
return Section.component(item);
}
case "link": {
return Link.component(item);
}
case "slider": {
return Slider.component(item);
}
case "text": {
return Text.component(item);
}
case "progress": {
return Progress.component(item);
}
default: {
throw new Error(
`Unknown UI type "${item.type}" for "${item.text}" component`
);
}
}
};
export default Control;