UNPKG

@novin-dev/formalite

Version:

Generate MUI form with few line of code

58 lines (51 loc) 4.29 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); var material = require('@mui/material'); var utils = require('../../config/utils.js'); var React = require('react'); var RadioGroupView_type = require('./RadioGroupView.type.js'); var ViewError = require('../../components/ViewError.js'); var ViewPending = require('../../components/ViewPending.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var CustomLabel = function (_a) { var name = _a.name, allInputProps = _a.allInputProps, labelProps = _a.labelProps, validationSchema = _a.validationSchema, formik = _a.formik; return (React__default["default"].createElement(material.FormLabel, tslib.__assign({ "data-testid": "label", component: "legend", required: utils.checkIsRequired({ schema: validationSchema, formikValues: formik.values, key: name, }) }, labelProps), allInputProps.label)); }; var RadioGroupViewAllViews = function (props) { var formik = props.formik, name = props.name, validationSchema = props.validationSchema, translator = props.translator, dataStatus = props.dataStatus, loadFunction = props.loadFunction, allInputProps = props.allInputProps, labelProps = props.labelProps; var helperText = allInputProps.helperText, onChange = allInputProps.onChange, inputProps = tslib.__rest(allInputProps, ["helperText", "onChange"]); if (dataStatus.status === RadioGroupView_type.RadioGroupStateEnum.READY) { return (React__default["default"].createElement(material.FormControl, { component: "fieldset", error: utils.getData({ source: formik.touched, key: name }) && Boolean(utils.getData({ source: formik.errors, key: name })), fullWidth: true }, React__default["default"].createElement(CustomLabel, { validationSchema: validationSchema, name: name, allInputProps: allInputProps, labelProps: labelProps, formik: formik }), React__default["default"].createElement(material.RadioGroup, tslib.__assign({ name: name, row: true }, inputProps), Object.entries(dataStatus.data).map(function (_a) { var key = _a[0], value = _a[1]; return (React__default["default"].createElement(material.FormControlLabel, { key: key, value: key, label: value.label, control: React__default["default"].createElement(material.Radio, tslib.__assign({ checked: utils.getData({ source: formik.values, key: name }) === key, onChange: function (event) { if (event.target.checked) { formik.setFieldValue(name, key); if (typeof onChange === "function") { onChange(key, value.additionalData); } } } }, value.props)) })); })), React__default["default"].createElement(material.FormHelperText, { "data-i18n": "[html]content.body", dangerouslySetInnerHTML: { __html: utils.getData({ source: formik.touched, key: name }) && utils.getData({ source: formik.errors, key: name }) ? translator(utils.getData({ source: formik.errors, key: name })) : helperText, } }))); } if (dataStatus.status === RadioGroupView_type.RadioGroupStateEnum.PENDING) { return (React__default["default"].createElement(ViewPending["default"], { label: React__default["default"].createElement(CustomLabel, { validationSchema: validationSchema, name: name, allInputProps: allInputProps, labelProps: labelProps, formik: formik }) })); } return (React__default["default"].createElement(ViewError["default"], { error: dataStatus.error, reloadFunction: loadFunction, label: React__default["default"].createElement(CustomLabel, { validationSchema: validationSchema, name: name, allInputProps: allInputProps, labelProps: labelProps, formik: formik }) })); }; exports["default"] = RadioGroupViewAllViews; //# sourceMappingURL=RadioGroupViewAllViews.js.map