UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

48 lines 1.67 kB
import * as React from 'react'; import { safeEval } from '@tomino/dynamic-form'; import { getValue } from '../helpers'; import { Context } from '../context'; import { prop } from '../common'; export const IfView = controlProps => { const { formElement, owner } = controlProps; const { props: props } = formElement; const context = React.useContext(Context); if (!prop(controlProps.formElement)) { return React.createElement("div", null, "Component not bound."); } const value = getValue(controlProps, context); let isTrue = true; if (props.exists && !value) { isTrue = false; } else if (props.notExists && value) { isTrue = false; } else if (props.equal && value != value) { isTrue = false; } else if (props.notEqual && value == parseFloat(value)) { isTrue = false; } else if (props.biggerThan && value <= parseFloat(value)) { isTrue = false; } else if (props.biggerOrEqualThan && value < parseFloat(value)) { isTrue = false; } else if (props.smallerThan && value <= parseFloat(value)) { isTrue = false; } else if (props.smallerOrEqualThan && value > parseFloat(value)) { isTrue = false; } else if (props.expression) { isTrue = safeEval(owner, props.expression, owner); } if (formElement.elements && formElement.elements.length) { return controlProps.catalogue.createComponent(controlProps, formElement.elements[isTrue ? 0 : 1], context); } return React.createElement("div", null, "Empty template"); }; IfView.displayName = 'IfView'; //# sourceMappingURL=if_view.js.map