react-standalone-form-mui
Version:
The Material UI suite for react-standalone-form library.
68 lines (57 loc) • 1.87 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Input = _interopRequireDefault(require("@material-ui/core/Input"));
var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
var _FormControl = _interopRequireDefault(require("./FormControl"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const Input = _ref => {
let {
name,
type,
value,
placeholder,
required,
maxChars,
multiline,
addon,
disableUnderline,
setValue
} = _ref;
return /*#__PURE__*/_react.default.createElement(_Input.default, {
id: name,
type: type,
onChange: e => {
const finalValue = maxChars && e.target.value.length > maxChars ? e.target.value.substring(0, maxChars) : e.target.value;
setValue(name, finalValue, required, {
type
});
},
value: value || '',
placeholder: placeholder,
startAdornment: addon ? /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
position: "start"
}, addon) : null,
endAdornment: maxChars ? /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
position: "end"
}, "".concat(value ? value.length : 0, "/").concat(maxChars)) : null,
disableUnderline: disableUnderline,
multiline: multiline
});
};
Input.defaultProps = {
type: 'text'
};
Input.propTypes = {
name: _propTypes.default.string.isRequired,
type: _propTypes.default.string,
value: _propTypes.default.any,
required: _propTypes.default.bool,
setValue: _propTypes.default.func.isRequired
};
var _default = (0, _FormControl.default)(Input);
exports.default = _default;