From b6415f1be9197489369d77314b4c29900aefdd01 Mon Sep 17 00:00:00 2001 From: Jason Chuang Date: Mon, 13 Apr 2026 02:25:26 +0800 Subject: [PATCH] avoid double click issue for public update user record --- .../UserInformationCard_Individual_Pub.js | 84 +++++++++++-------- 1 file changed, 48 insertions(+), 36 deletions(-) diff --git a/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual_Pub.js b/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual_Pub.js index 214de23..a577a57 100644 --- a/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual_Pub.js +++ b/src/pages/User/DetailsPage_Individual/UserInformationCard_Individual_Pub.js @@ -80,43 +80,53 @@ const UserInformationCard_Individual_Pub = ({ formData, loadDataFun }) => { 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(); - } - }); - } + onSubmit: (values, { setSubmitting }) => { + if (values.country == null) { + setErrorMsg(intl.formatMessage({ id: 'pleaseFillInCountry' })); + return; + } + if (values.country.type === "hongKong" && values.district == null) { + setErrorMsg(intl.formatMessage({ id: 'pleaseFillInDistrict' })); + return; } + return new Promise((resolve) => { + 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(); + resolve(); + window.location.reload(); + }, + onFail: function () { + setSubmitting(false); + resolve(); + }, + onError: function () { + setSubmitting(false); + resolve(); + } + }); + }); } }); @@ -145,6 +155,7 @@ const UserInformationCard_Individual_Pub = ({ formData, loadDataFun }) => { variant="contained" color="cancel" onClick={loadDataFun} + disabled={formik.isSubmitting} > @@ -156,6 +167,7 @@ const UserInformationCard_Individual_Pub = ({ formData, loadDataFun }) => { variant="contained" type="submit" color="success" + disabled={formik.isSubmitting} >