@novin-dev/formalite
Version:
Generate MUI form with few line of code
58 lines (51 loc) • 3.14 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var React = require('react');
var NumberFormat = require('react-number-format');
var material = require('@mui/material');
var memo = require('../Bases/functions/memo.js');
var TextFieldBase = require('../Bases/TextFieldBase.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var NumberFormat__default = /*#__PURE__*/_interopDefaultLegacy(NumberFormat);
var PriceView = function (props) {
var allData = props.allData, name = props.name, formik = props.formik, loading = props.loading, validationSchema = props.validationSchema, translator = props.translator, formMustRegex = props.formMustRegex;
var _a = allData.inputProps, onChange = _a.onChange, inputProps = tslib.__rest(_a, ["onChange"]);
var NumberFormatCustom = React.useMemo(function () {
return React__default["default"].forwardRef(function (numberFormatProps, ref) {
var numberOnChange = numberFormatProps.onChange, other = tslib.__rest(numberFormatProps, ["onChange"]);
return (React__default["default"].createElement(NumberFormat__default["default"], tslib.__assign({}, other, { isAllowed: function (values) {
if (allData.mustRegex instanceof RegExp) {
return allData.mustRegex.test(values.value);
}
return true;
}, getInputRef: ref, onValueChange: function (values) {
numberOnChange({
target: {
name: numberFormatProps.name,
value: values.value,
},
});
}, thousandSeparator: true, isNumericString: true }, (allData.numberFormatProps ? allData.numberFormatProps : {}))));
});
},
/* eslint-disable react-hooks/exhaustive-deps */
[
JSON.stringify(allData.mustRegex),
JSON.stringify(allData.numberFormatProps),
]
/* eslint-enable react-hooks/exhaustive-deps */
);
return (React__default["default"].createElement(material.Grid, tslib.__assign({ item: true }, allData.layoutProps),
React__default["default"].createElement(TextFieldBase.TextFieldBase, tslib.__assign({ formik: formik, loading: loading, validationSchema: validationSchema, translator: translator, name: String(name), mustRegex: [allData.mustRegex, formMustRegex] }, inputProps, { onChange: function (value) {
if (typeof onChange === "function") {
onChange(parseFloat(value));
}
}, InputProps: tslib.__assign({ inputComponent: NumberFormatCustom }, (inputProps.InputProps || {})) }))));
};
var PriceView$1 = React__default["default"].memo(PriceView, function (prevProps, nextProps) {
return memo.baseMemo(prevProps, nextProps);
});
exports["default"] = PriceView$1;
//# sourceMappingURL=PriceView.js.map