UNPKG

@novin-dev/formalite

Version:

Generate MUI form with few line of code

49 lines (46 loc) 2.64 kB
import { __rest, __assign } from 'tslib'; import React, { useMemo } from 'react'; import NumberFormat from 'react-number-format'; import { Grid } from '@mui/material'; import { baseMemo } from '../Bases/functions/memo.js'; import { TextFieldBase } from '../Bases/TextFieldBase.js'; 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 = __rest(_a, ["onChange"]); var NumberFormatCustom = useMemo(function () { return React.forwardRef(function (numberFormatProps, ref) { var numberOnChange = numberFormatProps.onChange, other = __rest(numberFormatProps, ["onChange"]); return (React.createElement(NumberFormat, __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.createElement(Grid, __assign({ item: true }, allData.layoutProps), React.createElement(TextFieldBase, __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: __assign({ inputComponent: NumberFormatCustom }, (inputProps.InputProps || {})) })))); }; var PriceView$1 = React.memo(PriceView, function (prevProps, nextProps) { return baseMemo(prevProps, nextProps); }); export { PriceView$1 as default }; //# sourceMappingURL=PriceView.js.map