@ezform/mui
Version:
Material UI form components for use with EZForm React validation and form library
16 lines (15 loc) • 1.48 kB
JavaScript
import React, { memo } from "react";
import { useField, propsEqual } from "@ezform/core";
import { TextField } from "@material-ui/core";
import { FieldReadonly } from "./FieldReadonly";
export var FieldText = memo(function (props) {
var id = props.id, name = props.name, form = props.form, _a = props.validator, validator = _a === void 0 ? function () { return null; } : _a, disabled = props.disabled, _b = props.readonly, readonly = _b === void 0 ? form.isReadonly : _b, label = props.label, _c = props.multiline, multiline = _c === void 0 ? false : _c, _d = props.variant, variant = _d === void 0 ? "standard" : _d, _e = props.color, color = _e === void 0 ? "primary" : _e, placeholder = props.placeholder, defaultValue = props.defaultValue;
useField(name, validator, form, defaultValue);
var handleChange = function (e) {
form.setField(name, e.target.value);
};
if (readonly) {
return (React.createElement(FieldReadonly, { variant: variant, color: color, name: name, id: id, label: label, value: form.getField(name) || "", multiline: multiline, placeholder: placeholder, fullWidth: true }));
}
return (React.createElement(TextField, { variant: variant, color: color, name: name, id: id, label: label, onChange: handleChange, value: form.getField(name) || "", disabled: disabled, error: form.hasError(name), helperText: form.getHelperText(name), multiline: multiline, placeholder: placeholder, fullWidth: true }));
}, propsEqual);