UNPKG

@ezform/mui

Version:

Material UI form components for use with EZForm React validation and form library

15 lines (14 loc) 1.56 kB
import React, { memo } from "react"; import { useField, propsEqual } from "@ezform/core"; import { FormControl, FormControlLabel, FormLabel, RadioGroup, Radio, FormHelperText } from "@material-ui/core"; export var FieldRadioGroup = memo(function (props) { var id = props.id, name = props.name, form = props.form, _a = props.validator, validator = _a === void 0 ? function () { return null; } : _a, label = props.label, _b = props.readonly, readonly = _b === void 0 ? form.isReadonly : _b, options = props.options, _c = props.color, color = _c === void 0 ? "secondary" : _c, defaultValue = props.defaultValue; useField(name, validator, form, defaultValue); var handleChange = function (e, value) { form.setField(name, value); }; return (React.createElement(FormControl, { error: form.hasError(name), component: "fieldset", fullWidth: true }, label && React.createElement(FormLabel, { component: "legend" }, label), React.createElement(RadioGroup, { id: id, value: form.getField(name) || null, onChange: handleChange, onClick: readonly ? function (e) { return e.preventDefault(); } : undefined }, options.map(function (option) { return (React.createElement(FormControlLabel, { key: option.key, value: option.value, control: React.createElement(Radio, { color: color }), label: option.label, disabled: (option === null || option === void 0 ? void 0 : option.disabled) || false })); })), form.hasError(name) && React.createElement(FormHelperText, { error: true }, form.getHelperText(name)))); }, propsEqual);