| @@ -58,7 +58,7 @@ export const handleLogoutFunction = () => { | |||
| } | |||
| ) | |||
| console.log("logout"); | |||
| // console.log("logout"); | |||
| // ** Remove user, accessToken & refreshToken from localStorage | |||
| localStorage.removeItem('userData') | |||
| localStorage.removeItem('accessToken') | |||
| @@ -41,7 +41,7 @@ import iAmSmartICon from 'assets/images/icons/icon_iAmSmart.png'; | |||
| import {useDispatch} from "react-redux"; | |||
| import {handleLogin} from "auth/index"; | |||
| import useJwt from "../../../auth/jwt/useJwt"; | |||
| import { handleLogoutFunction } from 'auth/index'; | |||
| // ============================|| FIREBASE - LOGIN ||============================ // | |||
| const AuthLoginCustom = () => { | |||
| @@ -65,11 +65,12 @@ const AuthLoginCustom = () => { | |||
| const tryLogin = () => { | |||
| if(isValid){ | |||
| dispatch(handleLogoutFunction()); | |||
| // setSumitting(true) | |||
| useJwt | |||
| .login({username: values.username, password: values.password}) | |||
| .then((response) => { | |||
| // console.log("123") | |||
| console.log(response) | |||
| const userData = { | |||
| id: response.data.id, | |||
| fullenName: response.data.name, | |||
| @@ -92,7 +93,6 @@ const AuthLoginCustom = () => { | |||
| console.error(error.response.data.error) | |||
| setErrorMassage(error.response.data.error) | |||
| setOpen(true) | |||
| console.log("321") | |||
| }); | |||
| }else{ | |||
| setOpen(true) | |||
| @@ -32,6 +32,7 @@ import { strengthColorChi, strengthIndicator } from 'utils/password-strength'; | |||
| import axios from "axios"; | |||
| import {POST_PUBLIC_USER_REGISTER, POST_CAPTCHA} from "utils/ApiPathConst"; | |||
| // import * as HttpUtils from 'utils/HttpUtils'; | |||
| import * as ComboData from "utils/ComboData"; | |||
| import Loadable from 'components/Loadable'; | |||
| import { lazy } from 'react'; | |||
| @@ -83,16 +84,14 @@ const BusCustomFormWizard = (props) => { | |||
| }; | |||
| const [selectedAddress4, setSelectedAddress4] = useState(null); | |||
| const [selectedAddress5, setSelectedAddress5] = useState("香港"); | |||
| const [selectedAddress5, setSelectedAddress5] = useState(ComboData.country[0]); | |||
| const [termsAndConAccept, setTermsAndConAccept] = useState(false); | |||
| const [termsAndConNotAccept, setTermsAndConNotAccept] = useState(false); | |||
| const [isValid, setisValid] = useState(false); | |||
| const [checkCountry, setCheckCountry] = useState(false); | |||
| const address4ComboList = | |||
| ["北區","長洲區","大埔區","大嶼山區","東區","觀塘區","黃大仙區","九龍城區","葵青區","南區","南丫島區", | |||
| "坪洲區","荃灣區","沙田區","深水埗區","屯門區","灣仔區","西貢區","油尖旺區","元朗區","中西區"]; | |||
| const address5ComboList = ["香港","內地","澳門"]; | |||
| const address4ComboList = ComboData.district; | |||
| const address5ComboList = ComboData.country; | |||
| const termsAndCon = "此網址由香港特別行政區政府物流服務署製作及管理。本署會盡力確保網址上的資料無誤,\n" | |||
| + "但有絕對酌情權隨時刪除、暫停登載或編輯各項資料而無須給予任何理由。\n由於任何與網址" | |||
| + "內資料有關的理由或原因,而導致出現申索、損失或損害,本署概不負責。\n使用者須自行評" | |||
| @@ -247,6 +246,8 @@ const BusCustomFormWizard = (props) => { | |||
| useEffect(() => { | |||
| props.step ==2?_onSubmit():null; | |||
| onCaptchaChange(); | |||
| checkDataField(values) | |||
| }, [props.step]) | |||
| const {handleSubmit} = useForm({}) | |||
| @@ -342,8 +343,14 @@ const BusCustomFormWizard = (props) => { | |||
| } | |||
| function handleUserName(username) { | |||
| var symbol = /^(?=.*[!@#%&])/; | |||
| var space = /\s/; | |||
| if (username.length < 6) { | |||
| return false; | |||
| } else if (username.match(symbol)) { | |||
| return false; | |||
| }else if (username.match(space)) { | |||
| return false; | |||
| } else { | |||
| return true; | |||
| } | |||
| @@ -360,6 +367,7 @@ const BusCustomFormWizard = (props) => { | |||
| var upperCase = /[A-Z]/g; | |||
| var numbers = /[0-9]/g; | |||
| var symbol = /^(?=.*[!@#%&])/; | |||
| var space = /\s/; | |||
| if (!new_pass.match(lowerCase)) { | |||
| return false; | |||
| } else if (!new_pass.match(upperCase)) { | |||
| @@ -369,8 +377,12 @@ const BusCustomFormWizard = (props) => { | |||
| } else if (!new_pass.match(symbol)) { | |||
| return false; | |||
| } else if (new_pass.length < 8) { | |||
| return false; | |||
| } else { | |||
| return false; | |||
| } | |||
| else if (new_pass.match(space)) { | |||
| return false; | |||
| }else { | |||
| // console.log("password true") | |||
| return true; | |||
| } | |||
| } | |||
| @@ -404,10 +416,15 @@ const BusCustomFormWizard = (props) => { | |||
| faxCountryCode:'852', | |||
| brExpiryDate:'', | |||
| brNo:'', | |||
| emailConfirm:'', | |||
| captchaField:'' | |||
| }), | |||
| validationSchema:yup.object().shape({ | |||
| username: yup.string().min(6,'用戶名稱最少6位').required('請輸入用戶名稱'), | |||
| username: yup.string().min(6,'用戶名稱最少6位').required('請輸入用戶名稱') | |||
| .matches(/^[aA-zZ0-9\s]+$/, "用戶名稱不包含特殊字符") | |||
| .matches(/^\S*$/, '用戶名稱不包含空格'), | |||
| password: yup.string().min(8,'請輸入最少8位密碼').required('請輸入密碼') | |||
| .matches(/^\S*$/, '密碼不包含空格') | |||
| .matches(/^(?=.*[a-z])/, '請包括最少1個小寫字母') | |||
| .matches(/^(?=.*[A-Z])/, '請包括最少1個大寫字母') | |||
| .matches(/^(?=.*[0-9])/, '請包括最少1個數字') | |||
| @@ -435,8 +452,11 @@ const BusCustomFormWizard = (props) => { | |||
| const handleReset = (resetForm) => { | |||
| resetForm(); | |||
| setSelectedAddress4("") | |||
| setSelectedAddress5(ComboData.country[0]) | |||
| setCheckCountry(false) | |||
| setFileList([]) | |||
| setFileListData([]) | |||
| onCaptchaChange() | |||
| }; | |||
| const { values } = formik | |||
| @@ -473,7 +493,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="username-login" | |||
| type="text" | |||
| value={formik.values.username} | |||
| value={formik.values.username.trim()} | |||
| name="username" | |||
| onChange={formik.handleChange} | |||
| placeholder="用戶登入名稱" | |||
| @@ -509,7 +529,7 @@ const BusCustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.password && formik.errors.password)} | |||
| id="password-signup" | |||
| type={showPassword ? 'text' : 'password'} | |||
| value={formik.values.password} | |||
| value={formik.values.password.trim()} | |||
| name="password" | |||
| onChange={(e) => { | |||
| formik.handleChange(e); | |||
| @@ -565,7 +585,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="confirmPassword-login" | |||
| type={showConfirmPassword ? 'text' : 'password'} | |||
| value={formik.values.confirmPassword} | |||
| value={formik.values.confirmPassword.trim()} | |||
| name="confirmPassword" | |||
| onBlur={formik.handleBlur} | |||
| onChange={(e) => { | |||
| @@ -633,7 +653,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="enCompanyName-login" | |||
| type="enCompanyName" | |||
| value={formik.values.enCompanyName} | |||
| value={formik.values.enCompanyName.trim()} | |||
| name="enCompanyName" | |||
| onChange={formik.handleChange} | |||
| placeholder="與與商業登記證相同如有" | |||
| @@ -663,7 +683,7 @@ const BusCustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.chCompanyName && formik.errors.chCompanyName)} | |||
| id="chCompanyName-signup" | |||
| type="text" | |||
| value={formik.values.chCompanyName} | |||
| value={formik.values.chCompanyName.trim()} | |||
| name="chCompanyName" | |||
| onChange={formik.handleChange} | |||
| placeholder="與與商業登記證相同如有" | |||
| @@ -690,7 +710,7 @@ const BusCustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.brNo && formik.errors.brNo)} | |||
| id="brNo-signup" | |||
| type="text" | |||
| value={formik.values.brNo} | |||
| value={formik.values.brNo.trim()} | |||
| name="brNo" | |||
| onChange={formik.handleChange} | |||
| placeholder="與與商業登記證相同如有" | |||
| @@ -722,6 +742,7 @@ const BusCustomFormWizard = (props) => { | |||
| onChange={formik.handleChange} | |||
| placeholder="與與商業登記證相同如有" | |||
| inputProps={{ | |||
| min: new Date().toISOString().split("T")[0], | |||
| onKeyDown: (e) => { | |||
| if (e.key === 'Enter') { | |||
| e.preventDefault(); | |||
| @@ -745,7 +766,7 @@ const BusCustomFormWizard = (props) => { | |||
| fullWidth | |||
| error={Boolean(formik.touched.address1 && formik.errors.address1)} | |||
| id="address1-signup" | |||
| value={formik.values.address1} | |||
| value={formik.values.address1.trim()} | |||
| name="address1" | |||
| onChange={formik.handleChange} | |||
| placeholder="第一行" | |||
| @@ -762,7 +783,7 @@ const BusCustomFormWizard = (props) => { | |||
| fullWidth | |||
| error={Boolean(formik.touched.address2 && formik.errors.address2)} | |||
| id="address2-signup" | |||
| value={formik.values.address2} | |||
| value={formik.values.address2.trim()} | |||
| name="address2" | |||
| onChange={formik.handleChange} | |||
| placeholder="第二行" | |||
| @@ -778,7 +799,7 @@ const BusCustomFormWizard = (props) => { | |||
| fullWidth | |||
| error={Boolean(formik.touched.address3 && formik.errors.address3)} | |||
| id="address3-signup" | |||
| value={formik.values.address3} | |||
| value={formik.values.address3.trim()} | |||
| name="address3" | |||
| onChange={formik.handleChange} | |||
| placeholder="第三行" | |||
| @@ -793,15 +814,12 @@ const BusCustomFormWizard = (props) => { | |||
| <Autocomplete | |||
| disablePortal | |||
| id="address4-combo" | |||
| value={selectedAddress4 === null ? null : selectedAddress4} | |||
| value={selectedAddress4} | |||
| options={address4ComboList} | |||
| disabled={checkCountry} | |||
| onChange={(event, newValue) => { | |||
| if (newValue !== null){ | |||
| setSelectedAddress4(newValue); | |||
| } | |||
| setSelectedAddress4(newValue); | |||
| }} | |||
| sx={{"& .MuiInputBase-root": { height: "41px" },"#address4-combo":{padding: "0px 0px 0px 0px"}, "& .MuiAutocomplete-endAdornment": { top: "auto" },}} | |||
| renderInput={(params) => <TextField {...params} placeholder="區域 (只適用於香港)"/>} | |||
| /> | |||
| @@ -816,9 +834,11 @@ const BusCustomFormWizard = (props) => { | |||
| if(newValue=='香港'){ | |||
| setCheckCountry(false) | |||
| }else{ | |||
| setSelectedAddress4(""); | |||
| setCheckCountry(true) | |||
| } | |||
| }else{ | |||
| setSelectedAddress4(""); | |||
| setCheckCountry(true) | |||
| } | |||
| }} | |||
| @@ -856,7 +876,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="enName-login" | |||
| type="enName" | |||
| value={formik.values.enName} | |||
| value={formik.values.enName.trim()} | |||
| name="enName" | |||
| onChange={formik.handleChange} | |||
| placeholder="" | |||
| @@ -890,7 +910,7 @@ const BusCustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.email && formik.errors.email)} | |||
| id="email-login" | |||
| type="email" | |||
| value={formik.values.email} | |||
| value={formik.values.email.trim()} | |||
| name="email" | |||
| onChange={formik.handleChange} | |||
| placeholder="電郵" | |||
| @@ -920,7 +940,7 @@ const BusCustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.emailConfirm && formik.errors.emailConfirm)} | |||
| id="emailConfirm-login" | |||
| type="email" | |||
| value={formik.values.emailConfirm} | |||
| value={formik.values.emailConfirm.trim()} | |||
| name="emailConfirm" | |||
| // onBlur={formik.handleBlur} | |||
| onChange={formik.handleChange} | |||
| @@ -956,7 +976,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="phoneCountryCode-login" | |||
| type="phoneCountryCode" | |||
| value={formik.values.phoneCountryCode} | |||
| value={formik.values.phoneCountryCode.trim()} | |||
| name="phoneCountryCode" | |||
| // onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -983,7 +1003,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="phone-login" | |||
| type="phone" | |||
| value={formik.values.phone} | |||
| value={formik.values.phone.trim()} | |||
| name="phone" | |||
| onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -1026,7 +1046,7 @@ const BusCustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.fax && formik.errors.fax)} | |||
| id="faxCountryCode-login" | |||
| type="faxCountryCode" | |||
| value={formik.values.faxCountryCode} | |||
| value={formik.values.faxCountryCode.trim()} | |||
| name="faxCountryCode" | |||
| // onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -1051,7 +1071,7 @@ const BusCustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="fax-login" | |||
| type="fax" | |||
| value={formik.values.fax} | |||
| value={formik.values.fax.trim()} | |||
| name="fax" | |||
| // onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -1186,7 +1206,7 @@ const BusCustomFormWizard = (props) => { | |||
| fullWidth | |||
| id="captchaField" | |||
| type="text" | |||
| value={formik.values.captchaField} | |||
| value={formik.values.captchaField.trim()} | |||
| onBlur={formik.handleBlur} | |||
| error={Boolean(formik.touched.captchaField && formik.errors.captchaField)} | |||
| name="captchaField" | |||
| @@ -31,7 +31,7 @@ import { strengthColorChi, strengthIndicator } from 'utils/password-strength'; | |||
| import axios from "axios"; | |||
| import {POST_PUBLIC_USER_REGISTER,POST_CAPTCHA} from "utils/ApiPathConst"; | |||
| // import * as HttpUtils from 'utils/HttpUtils'; | |||
| import * as ComboData from "../../../utils/ComboData"; | |||
| import * as ComboData from "utils/ComboData"; | |||
| import Loadable from 'components/Loadable'; | |||
| import { lazy } from 'react'; | |||
| @@ -143,7 +143,7 @@ const CustomFormWizard = (props) => { | |||
| data.captchaField&& | |||
| handlePassword(data.password)&& | |||
| handleEmail(data.email)&& | |||
| handleIdNo(data.idNo,selectedIdDocType.type)&& | |||
| handleIdNo(data.idNo,selectedIdDocType.type,data.checkDigit)&& | |||
| handlePhone(data.phone)&& | |||
| handleUsername(data.username)&& | |||
| handleCaptcha(data.captchaField) | |||
| @@ -242,6 +242,8 @@ const CustomFormWizard = (props) => { | |||
| useEffect(() => { | |||
| props.step ==2?_onSubmit():null; | |||
| onCaptchaChange(); | |||
| checkDataField(values) | |||
| }, [props.step]) | |||
| const {handleSubmit} = useForm({}) | |||
| @@ -332,20 +334,25 @@ const CustomFormWizard = (props) => { | |||
| } | |||
| } | |||
| function handlePhone(value) { | |||
| if (value.length < 8) { | |||
| function handlePhone(phone) { | |||
| if (phone.length < 8) { | |||
| return false; | |||
| } else { | |||
| console.log("Phone true") | |||
| // console.log("Phone true") | |||
| return true; | |||
| } | |||
| } | |||
| function handleUsername(value) { | |||
| if (value.length < 6) { | |||
| function handleUsername(username) { | |||
| var symbol = /^(?=.*[!@#%&])/; | |||
| var space = /\s/; | |||
| if (username.length < 6) { | |||
| return false; | |||
| } else if (username.match(symbol)) { | |||
| return false; | |||
| }else if (username.match(space)) { | |||
| return false; | |||
| } else { | |||
| console.log("Username true") | |||
| return true; | |||
| } | |||
| } | |||
| @@ -354,15 +361,19 @@ const CustomFormWizard = (props) => { | |||
| return captchaField == captcha; | |||
| } | |||
| function handleIdNo(idNo,selectedIdDocType) { | |||
| var upperCase = /[A-Z]/g; | |||
| if (!idNo.match(upperCase)&&selectedIdDocType=="HKID") { | |||
| function handleIdNo(idNo,selectedIdDocType,checkDigit) { | |||
| var pattern = /^[A-Z][0-9]*$/; | |||
| var space = /\s/; | |||
| if (!idNo.match(pattern)&&selectedIdDocType=="HKID" | |||
| &&!checkDigit=="") { | |||
| return false; | |||
| } | |||
| else if (idNo.length < 7) { | |||
| else if (idNo.match(space)) { | |||
| return false; | |||
| }else if (idNo.length < 7) { | |||
| return false; | |||
| } else { | |||
| console.log("IdNo true") | |||
| // console.log("IdNo true") | |||
| return true; | |||
| } | |||
| } | |||
| @@ -374,6 +385,7 @@ const CustomFormWizard = (props) => { | |||
| var upperCase = /[A-Z]/g; | |||
| var numbers = /[0-9]/g; | |||
| var symbol = /^(?=.*[!@#%&])/; | |||
| var space = /\s/; | |||
| if (!new_pass.match(lowerCase)) { | |||
| return false; | |||
| } else if (!new_pass.match(upperCase)) { | |||
| @@ -384,8 +396,11 @@ const CustomFormWizard = (props) => { | |||
| return false; | |||
| } else if (new_pass.length < 8) { | |||
| return false; | |||
| } else { | |||
| console.log("password true") | |||
| } | |||
| else if (new_pass.match(space)) { | |||
| return false; | |||
| }else { | |||
| // console.log("password true") | |||
| return true; | |||
| } | |||
| } | |||
| @@ -420,11 +435,15 @@ const CustomFormWizard = (props) => { | |||
| submit: null, | |||
| fax:'', | |||
| faxCountryCode:'852', | |||
| idDocType:'' | |||
| idDocType:'', | |||
| captchaField:'' | |||
| }), | |||
| validationSchema:yup.object().shape({ | |||
| username: yup.string().min(6,'用戶名稱最少6位').required('請輸入用戶名稱'), | |||
| username: yup.string().min(6,'用戶名稱最少6位').required('請輸入用戶名稱') | |||
| .matches(/^[aA-zZ0-9\s]+$/, "用戶名稱不包含特殊字符") | |||
| .matches(/^\S*$/, '用戶名稱不包含空格'), | |||
| password: yup.string().min(8,'請輸入最少8位密碼').required('請輸入密碼') | |||
| .matches(/^\S*$/, '密碼不包含空格') | |||
| .matches(/^(?=.*[a-z])/, '請包括最少1個小寫字母') | |||
| .matches(/^(?=.*[A-Z])/, '請包括最少1個大寫字母') | |||
| .matches(/^(?=.*[0-9])/, '請包括最少1個數字') | |||
| @@ -437,7 +456,20 @@ const CustomFormWizard = (props) => { | |||
| address3: yup.string().max(255).required('請輸入第三行地址'), | |||
| email: yup.string().email('請輸入電郵格式').max(255).required('請輸入電郵'), | |||
| emailConfirm: yup.string().email('請輸入電郵格式').max(255).required('請輸入電郵').oneOf([yup.ref('email'), null], '請輸入相同電郵'), | |||
| idNo: yup.string().min(7,"請輸入證件號碼").required('請輸入證件號碼'), | |||
| idNo: yup.string().required('請輸入證件號碼') | |||
| .matches(/^[aA-zZ0-9\s]+$/, "證件號碼不包含特殊字符") | |||
| .matches(/^\S*$/, '證件號碼不包含空格') | |||
| .test('checkIDCardFormat', '請輸入香港身份證號碼', function(value) { | |||
| const idDocType = selectedIdDocType.type; | |||
| var pattern = /^[A-Z][0-9]*$/; | |||
| if(value!==undefined){ | |||
| if (!value.match(pattern)&&idDocType=="HKID"&&value.length<7) { | |||
| return false | |||
| } else { | |||
| return true | |||
| } | |||
| } | |||
| }), | |||
| checkDigit:yup.string().max(1).required('請輸入括號內的數字或字母'), | |||
| idDocType: yup.string().max(255).required('請輸入證件類別'), | |||
| phoneCountryCode: yup.string().min(2,'請輸入最少2位數字').required('請輸入國際區號'), | |||
| @@ -451,10 +483,13 @@ const CustomFormWizard = (props) => { | |||
| const handleReset = (resetForm) => { | |||
| resetForm(); | |||
| setSelectedAddress4("") | |||
| setSelectedAddress5(ComboData.country[0]) | |||
| setCheckCountry(false) | |||
| setSelectedIdDocType({}) | |||
| setSelectedIdDocInputType(""); | |||
| setFileList([]) | |||
| setFileListData([]) | |||
| onCaptchaChange() | |||
| // setSelectedIdDocLabel("") | |||
| }; | |||
| @@ -489,7 +524,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="username-login" | |||
| type="text" | |||
| value={formik.values.username} | |||
| value={formik.values.username.trim()} | |||
| name="username" | |||
| onChange={formik.handleChange} | |||
| placeholder="用戶登入名稱" | |||
| @@ -525,7 +560,7 @@ const CustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.password && formik.errors.password)} | |||
| id="password-signup" | |||
| type={showPassword ? 'text' : 'password'} | |||
| value={formik.values.password} | |||
| value={formik.values.password.trim()} | |||
| name="password" | |||
| onChange={(e) => { | |||
| formik.handleChange(e); | |||
| @@ -581,7 +616,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="confirmPassword-login" | |||
| type={showConfirmPassword ? 'text' : 'password'} | |||
| value={formik.values.confirmPassword} | |||
| value={formik.values.confirmPassword.trim()} | |||
| name="confirmPassword" | |||
| onBlur={formik.handleBlur} | |||
| onChange={(e) => { | |||
| @@ -695,7 +730,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="idNo-login" | |||
| type="text" | |||
| value={formik.values.idNo} | |||
| value={formik.values.idNo.trim()} | |||
| name="idNo" | |||
| onChange={formik.handleChange} | |||
| placeholder="證件號碼" | |||
| @@ -729,7 +764,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="checkDigit-login" | |||
| type="text" | |||
| value={formik.values.checkDigit} | |||
| value={formik.values.checkDigit.trim()} | |||
| name="checkDigit" | |||
| onChange={formik.handleChange} | |||
| placeholder="( )" | |||
| @@ -754,7 +789,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="idNo-login" | |||
| type="text" | |||
| value={formik.values.idNo} | |||
| value={formik.values.idNo.trim()} | |||
| name="idNo" | |||
| onChange={formik.handleChange} | |||
| placeholder="證件號碼" | |||
| @@ -789,7 +824,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="enName-login" | |||
| type="enName" | |||
| value={formik.values.enName} | |||
| value={formik.values.enName.trim()} | |||
| name="enName" | |||
| onChange={formik.handleChange} | |||
| placeholder="與你的身份證明文件相同" | |||
| @@ -819,7 +854,7 @@ const CustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.chName && formik.errors.chName)} | |||
| id="chName-signup" | |||
| type="text" | |||
| value={formik.values.chName} | |||
| value={formik.values.chName.trim()} | |||
| name="chName" | |||
| onChange={formik.handleChange} | |||
| placeholder="與你的身份證明文件相同" | |||
| @@ -848,7 +883,7 @@ const CustomFormWizard = (props) => { | |||
| fullWidth | |||
| error={Boolean(formik.touched.address1 && formik.errors.address1)} | |||
| id="address1-signup" | |||
| value={formik.values.address1} | |||
| value={formik.values.address1.trim()} | |||
| name="address1" | |||
| onChange={formik.handleChange} | |||
| placeholder="第一行" | |||
| @@ -865,7 +900,7 @@ const CustomFormWizard = (props) => { | |||
| fullWidth | |||
| error={Boolean(formik.touched.address2 && formik.errors.address2)} | |||
| id="address2-signup" | |||
| value={formik.values.address2} | |||
| value={formik.values.address2.trim()} | |||
| name="address2" | |||
| onChange={formik.handleChange} | |||
| placeholder="第二行" | |||
| @@ -881,7 +916,7 @@ const CustomFormWizard = (props) => { | |||
| fullWidth | |||
| error={Boolean(formik.touched.address3 && formik.errors.address3)} | |||
| id="address3-signup" | |||
| value={formik.values.address3} | |||
| value={formik.values.address3.trim()} | |||
| name="address3" | |||
| onChange={formik.handleChange} | |||
| placeholder="第三行" | |||
| @@ -902,7 +937,6 @@ const CustomFormWizard = (props) => { | |||
| onChange={(event, newValue) => { | |||
| setSelectedAddress4(newValue); | |||
| }} | |||
| sx={{"& .MuiInputBase-root": { height: "41px" },"#address4-combo":{padding: "0px 0px 0px 0px"}, "& .MuiAutocomplete-endAdornment": { top: "auto" },}} | |||
| renderInput={(params) => <TextField {...params} placeholder="區域 (只適用於香港)"/>} | |||
| /> | |||
| @@ -917,9 +951,11 @@ const CustomFormWizard = (props) => { | |||
| if(newValue=='香港'){ | |||
| setCheckCountry(false) | |||
| }else{ | |||
| setSelectedAddress4(""); | |||
| setCheckCountry(true) | |||
| } | |||
| }else{ | |||
| setSelectedAddress4(""); | |||
| setCheckCountry(true) | |||
| } | |||
| }} | |||
| @@ -961,7 +997,7 @@ const CustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.email && formik.errors.email)} | |||
| id="email-login" | |||
| type="email" | |||
| value={formik.values.email} | |||
| value={formik.values.email.trim()} | |||
| name="email" | |||
| onChange={formik.handleChange} | |||
| placeholder="電郵" | |||
| @@ -991,7 +1027,7 @@ const CustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.emailConfirm && formik.errors.emailConfirm)} | |||
| id="emailConfirm-login" | |||
| type="email" | |||
| value={formik.values.emailConfirm} | |||
| value={formik.values.emailConfirm.trim()} | |||
| name="emailConfirm" | |||
| // onBlur={formik.handleBlur} | |||
| onChange={formik.handleChange} | |||
| @@ -1027,7 +1063,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="phoneCountryCode-login" | |||
| type="phoneCountryCode" | |||
| value={formik.values.phoneCountryCode} | |||
| value={formik.values.phoneCountryCode.trim()} | |||
| name="phoneCountryCode" | |||
| // onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -1054,7 +1090,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="phone-login" | |||
| type="phone" | |||
| value={formik.values.phone} | |||
| value={formik.values.phone.trim()} | |||
| name="phone" | |||
| // onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -1098,7 +1134,7 @@ const CustomFormWizard = (props) => { | |||
| error={Boolean(formik.touched.fax && formik.errors.fax)} | |||
| id="faxCountryCode-login" | |||
| type="faxCountryCode" | |||
| value={formik.values.faxCountryCode} | |||
| value={formik.values.faxCountryCode.trim()} | |||
| name="faxCountryCode" | |||
| // onChange={formik.handleChange} | |||
| onChange={(event) => { | |||
| @@ -1123,7 +1159,7 @@ const CustomFormWizard = (props) => { | |||
| <OutlinedInput | |||
| id="fax-login" | |||
| type="fax" | |||
| value={formik.values.fax} | |||
| value={formik.values.fax.trim()} | |||
| name="fax" | |||
| onBlur={formik.handleBlur} | |||
| // onChange={formik.handleChange} | |||
| @@ -1256,7 +1292,7 @@ const CustomFormWizard = (props) => { | |||
| fullWidth | |||
| id="captchaField" | |||
| type="text" | |||
| value={formik.values.captchaField} | |||
| value={formik.values.captchaField.trim()} | |||
| onBlur={formik.handleBlur} | |||
| error={Boolean(formik.touched.captchaField && formik.errors.captchaField)} | |||
| name="captchaField" | |||
| @@ -1338,7 +1374,7 @@ const CustomFormWizard = (props) => { | |||
| 證件號碼: | |||
| </Typography> | |||
| <Typography id="idNo-login"> | |||
| {formik.values.idNo} {selectedAddress5=="香港"?'('+formik.values.checkDigit+')':null} | |||
| {formik.values.idNo} {selectedIdDocType.type=="HKID"?'('+formik.values.checkDigit+')':null} | |||
| </Typography> | |||
| </Stack> | |||
| </Grid> | |||