// material-ui import { Grid, Button, Typography, FormHelperText, Stack, IconButton } from '@mui/material'; import MainCard from "components/MainCard"; import * as React from "react"; import { useEffect, useState } from "react"; import * as yup from 'yup'; import { useFormik } from 'formik'; import * as FieldUtils from "utils/FieldUtils"; import * as HttpUtils from 'utils/HttpUtils'; import * as UrlUtils from "utils/ApiPathConst"; import * as ComboData from "utils/ComboData"; const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); import Loadable from 'components/Loadable'; import { lazy } from 'react'; import {notifySaveSuccess,} from 'utils/CommonFunction'; import {FormattedMessage, useIntl} from "react-intl"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {ThemeProvider} from "@emotion/react"; import { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons'; // ==============================|| DASHBOARD - DEFAULT ||============================== // const UserInformationCard_Individual_Pub = ({ formData, loadDataFun }) => { const intl = useIntl(); const [currentUserData, setCurrentUserData] = useState({}); const [editMode, setEditMode] = useState(false); const [onReady, setOnReady] = useState(false); const [errorMsg, setErrorMsg] = useState(""); const [showId, setshowId] = useState(false); const handleClickShowId = () => { setshowId(!showId); }; const handleMouseDownId = (event) => { event.preventDefault(); }; useEffect(() => { if (Object.keys(formData).length > 0) { setCurrentUserData(formData); } }, [formData]); useEffect(() => { //if state data are ready and assign to different field // console.log(currentApplicationDetailData) if (Object.keys(currentUserData).length > 0) { setOnReady(true); } }, [currentUserData]); function getMaxErrStr(num, fieldname){ return intl.formatMessage({ id: 'noMoreThenNWords' },{num:num, fieldname:fieldname?intl.formatMessage({ id: fieldname})+": ":""}); } const formik = useFormik({ enableReinitialize: true, initialValues: currentUserData, validationSchema: yup.object().shape({ enName: yup.string().max(40, getMaxErrStr(40)).when('chName', { is: (chName) => chName?false:true, then: yup.string().required(intl.formatMessage({ id: 'userRequireEnglishName' })) }).nullable(), chName: yup.string().max(6, getMaxErrStr(6)).nullable(), addressLine1: yup.string().max(40).required(intl.formatMessage({id: 'validateAddressLine1'})), addressLine2: yup.string().max(40).nullable(), addressLine3: yup.string().max(40).nullable(), emailAddress: yup.string().email(intl.formatMessage({id: 'validEmailFormat'})).max(255).required(intl.formatMessage({id: 'requireEmail'})), tel_countryCode: yup.string().min(3, intl.formatMessage({id: 'require3Number'})).required(intl.formatMessage({id: 'requireDialingCode'})), fax_countryCode: yup.string().min(3, intl.formatMessage({id: 'require3Number'})), phoneNumber: yup.string().min(8, intl.formatMessage({id: 'require8Number'})).required(intl.formatMessage({id: 'requireContactNumber'})), faxNumber: yup.string().min(8, intl.formatMessage({id: 'require8Number'})).nullable(), }), onSubmit: values => { // console.log(values) if (values.country==null){ setErrorMsg(intl.formatMessage({id: 'pleaseFillInCountry'})) } else { if (values.country.type == "hongKong" && values.district == null){ setErrorMsg(intl.formatMessage({id: 'pleaseFillInDistrict'})) } else { HttpUtils.post({ url: UrlUtils.POST_PUB_IND_USER, params: { enName: values.enName, chName: values.chName, mobileNumber: { countryCode: values.tel_countryCode, phoneNumber: values.phoneNumber }, faxNo: { countryCode: values.fax_countryCode, faxNumber: values.faxNumber }, address: { country: values.country.type, district: values.district?.type, addressLine1: values.addressLine1, addressLine2: values.addressLine2, addressLine3: values.addressLine3, }, preferLocale: values.preferLocale.type }, onSuccess: function () { notifySaveSuccess(); window.location.reload(); } }); } } } }); const onEditClick = () => { setEditMode(true); }; return ( {!onReady ? :
{/*top button*/} {editMode ? <> : <> } {/*end top button*/} {errorMsg} {FieldUtils.getTextField({ label: intl.formatMessage({id: 'userLoginName'}) + ":", valueName: "username", disabled: true, form: formik })} {FieldUtils.getTextField({ label: intl.formatMessage({id: 'userEnglishName'}) + ":", valueName: "enName", disabled: true, form: formik })} {FieldUtils.getTextField({ label: intl.formatMessage({id: 'userChineseName'}) + ":", valueName: "chName", disabled: true, form: formik })} {FieldUtils.getComboField({ label: intl.formatMessage({id: 'idType'}) + ":", valueName: "idDocType", disabled: true, dataList: ComboData.idDocType, getOptionLabel: (option) => option? intl.formatMessage({ id: option }) : "", form: formik })} : {formik.values.idDocType === "HKID" ? // <> // // {FieldUtils.initField({ // valueName: "identification", // disabled: true, // form: formik, // placeholder: intl.formatMessage({id: 'idDocNumber'}), // inputProps: { // maxLength: 7, // onKeyDown: (e) => { // if (e.key === 'Enter') { // e.preventDefault(); // } // }, // } // })} // // // {FieldUtils.initField({ // valueName: "checkDigit", // disabled: true, // form: formik, // })} // // {formik.values.identification.slice(0, 4)} {showId ?formik.values.identification.slice(4):"****"}{showId ? '(' + formik.values.checkDigit + ')' :null} {showId ? : } : // // {FieldUtils.initField({ // valueName: "identification", // disabled: true, // form: formik // })} // {formik.values.identification.slice(0, 4)} {showId ?formik.values.identification.slice(4):"****"} {showId ? : } } {FieldUtils.getPhoneField({ label: intl.formatMessage({id: 'userContactNumber'}) + ":", valueName: { code: "tel_countryCode", num: "phoneNumber" }, disabled: (!editMode), form: formik })} {FieldUtils.getComboField({ label: intl.formatMessage({id: 'country'}) + ":", valueName: "country", getOptionLabel: (option) => option.type? intl.formatMessage({ id: option.type }) : "", dataList: ComboData.country, disabled: (!editMode), form: formik })} {FieldUtils.getTextField({ label: intl.formatMessage({id: 'userContactEmail'}) + ":", valueName: "emailAddress", disabled: true, form: formik })} {FieldUtils.getPhoneField({ label: intl.formatMessage({id: 'userFaxNumber'}) + ":", valueName: { code: "fax_countryCode", num: "faxNumber" }, disabled: (!editMode), form: formik })} {FieldUtils.getComboField({ label: intl.formatMessage({id: 'district'}) + ":", valueName: "district", dataList: ComboData.district, getOptionLabel: (option) => option.type? intl.formatMessage({ id: option.type }) : "", disabled: (!editMode), form: formik })} {FieldUtils.getComboField({ label: intl.formatMessage({id: 'language'}) + ":", valueName: "preferLocale", dataList: ComboData.Locale, getOptionLabel: (option) => option.label? option.label: "", disabled: (!editMode), form: formik })} {FieldUtils.getAddressField({ label: intl.formatMessage({id: 'userAddress'}) + ":", valueName: ["addressLine1", "addressLine2", "addressLine3"], disabled: (!editMode), form: formik })}
}
); }; export default UserInformationCard_Individual_Pub;