import React from 'react'; import { bindActionCreators } from "redux"; import { connect } from "react-redux"; // Components import Checkbox from "./checkbox/Checkbox"; import ErrorIcon from "../graphics/ErrorIcon"; import Evaluation from "./Evaluation"; import FetchOrg from "./FetchOrg"; import Html from "../helper/Html"; import Image from "./Image"; import ImageComponent from "../helper/Image"; import Information from "./Information"; import Input from "./Input"; import Missing from "./Missing"; import Number from "./Number"; import Radio from "./radio/Radio"; import Select from "./select/Select"; import Signature from "./Signature"; import Sum from "./Sum"; import SummaryDetails from "./SummaryDetails"; import Table from "./Table"; import Text from "./Text"; import Textarea from "./Textarea"; // State deps import { setData } from "../../state/actions"; import { NAME } from "../../state"; // Primitives import { SpecificBlock as StyledBlock } from "../../primitives/Block"; import StyledErrorBlock from "../../primitives/ErrorBlock"; import { ErrorMessage } from "../../primitives/Errors"; import { RenderableNode, State } from "../../index"; /** * Determine which component to use based on the node type */ function getBlock(type: RenderableNode["type"]) { switch (type) { case "Radio": return Radio; case "Checkbox": return Checkbox; case "Number": return Number; case "Select": return Select; case "Image": return Image; case "Text": return Text; case "Input": return Input; case "Textarea": return Textarea; case "Evaluation": return Evaluation; case "FetchOrg": return FetchOrg; case "Table": return Table; case "Signature": return Signature; case "Sum": return Sum; case "Information": return Information; default: return null; } } export function PureBlock(props: any) { const SpecificBlock = getBlock(props.type); if (props.type === "ErrorOk") { return (