@react-awesome-query-builder/mui
Version:
User-friendly query builder for React. MUI 5 widgets
48 lines (46 loc) • 1.71 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import React, { useState, useEffect } from "react";
import TextField from "@mui/material/TextField";
import FormControl from "@mui/material/FormControl";
var __isInternal = true; //true to optimize render
export default (function (props) {
var value = props.value,
setValue = props.setValue,
config = props.config,
readonly = props.readonly,
placeholder = props.placeholder,
customProps = props.customProps,
maxLength = props.maxLength,
valueError = props.valueError;
var _useState = useState(value),
_useState2 = _slicedToArray(_useState, 2),
internalValue = _useState2[0],
setInternalValue = _useState2[1];
useEffect(function () {
if (value !== internalValue) setInternalValue(value);
}, [value]);
var onChange = function onChange(e) {
var val = e.target.value;
if (val === "") val = undefined; // don't allow empty value
if (__isInternal) setInternalValue(val);
setValue(val, undefined, __isInternal);
};
var showErrorMessage = config.settings.showErrorMessage;
var canUseInternal = showErrorMessage ? true : !valueError;
var textValue = (__isInternal && canUseInternal ? internalValue : value) || "";
return /*#__PURE__*/React.createElement(FormControl, null, /*#__PURE__*/React.createElement(TextField, _extends({
variant: "standard",
value: textValue,
placeholder: !readonly ? placeholder : "",
InputProps: {
readOnly: readonly
},
inputProps: {
maxLength: maxLength
},
disabled: readonly,
onChange: onChange,
size: "small"
}, customProps)));
});