UNPKG

@novin-dev/formalite

Version:

Generate MUI form with few line of code

52 lines (45 loc) 3.86 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); var React = require('react'); var material = require('@mui/material'); var InputAdornment = require('@mui/material/InputAdornment'); var IconButton = require('@mui/material/IconButton'); var VisibilityOutlinedIcon = require('@mui/icons-material/VisibilityOutlined'); var VisibilityOffOutlinedIcon = require('@mui/icons-material/VisibilityOffOutlined'); var TextFieldBase = require('../Bases/TextFieldBase.js'); var memo = require('../Bases/functions/memo.js'); var I18nProvider = require('../../../base/I18nProvider.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var InputAdornment__default = /*#__PURE__*/_interopDefaultLegacy(InputAdornment); var IconButton__default = /*#__PURE__*/_interopDefaultLegacy(IconButton); var VisibilityOutlinedIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityOutlinedIcon); var VisibilityOffOutlinedIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityOffOutlinedIcon); var TextView = function (props) { var allData = props.allData, name = props.name, formik = props.formik, loading = props.loading, validationSchema = props.validationSchema; var _a = React.useState(!(allData.inputProps.type === "password")), showPassword = _a[0], setShowPassword = _a[1]; var mainRef = React.useRef(); var t = I18nProvider.useI18nContext().t; var _b = allData.inputProps, autoComplete = _b.autoComplete, type = _b.type, InputProps = _b.InputProps, inputProps = tslib.__rest(_b, ["autoComplete", "type", "InputProps"]); 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: props.translator, name: String(name), mustRegex: [allData.mustRegex, props.formMustRegex], inputRef: mainRef, type: type === "password" ? "".concat(showPassword ? "text" : "password") : type, autoComplete: type === "password" ? "on" : autoComplete, InputProps: allData.inputProps.type === "password" ? tslib.__assign(tslib.__assign({}, InputProps), { endAdornment: (React__default["default"].createElement(InputAdornment__default["default"], { position: "end" }, React__default["default"].createElement(material.Tooltip, { title: t("textview_toggle_password_visibility") }, React__default["default"].createElement(IconButton__default["default"], { "aria-label": t("fg-toggle-password-visibility"), onClick: function () { setShowPassword(!showPassword); if (mainRef.current) { mainRef.current.blur(); } }, onMouseDown: function (e) { e.preventDefault(); if (mainRef.current) { mainRef.current.focus(); } } }, showPassword ? (React__default["default"].createElement(VisibilityOutlinedIcon__default["default"], null)) : (React__default["default"].createElement(VisibilityOffOutlinedIcon__default["default"], null)))))) }) : tslib.__assign({}, InputProps) }, inputProps)))); }; var TextView$1 = React__default["default"].memo(TextView, function (prevProps, nextProps) { return memo.baseMemo(prevProps, nextProps); }); exports["default"] = TextView$1; //# sourceMappingURL=TextView.js.map