UNPKG

@novin-dev/formalite

Version:

Generate MUI form with few line of code

58 lines (51 loc) 3.14 kB
'use strict'; 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