diff --git a/apps/storefront/src/pages/accountSetting/AccountSetting.tsx b/apps/storefront/src/pages/accountSetting/AccountSetting.tsx index fbc0948f..0baf448a 100644 --- a/apps/storefront/src/pages/accountSetting/AccountSetting.tsx +++ b/apps/storefront/src/pages/accountSetting/AccountSetting.tsx @@ -251,7 +251,7 @@ function AccountSetting() { (param.newPassword && param.currentPassword) || currentEamil !== param.email ) { - const isUpdateSuccessfully = await sendEmail(param) + const isUpdateSuccessfully = await sendEmail(param, extraFields) if (!isUpdateSuccessfully) { snackbar.error( b3Lang('accountSettings.notification.passwordNotMatch') diff --git a/apps/storefront/src/pages/accountSetting/utils.ts b/apps/storefront/src/pages/accountSetting/utils.ts index 53b0558d..4dd087a6 100644 --- a/apps/storefront/src/pages/accountSetting/utils.ts +++ b/apps/storefront/src/pages/accountSetting/utils.ts @@ -45,9 +45,14 @@ const getXsrfToken = (): string | undefined => { } // Password and email Change Send emails -function sendEmail(data: any) { +function sendEmail(data: any, extraFields: any) { return new Promise((resolve, reject) => { const { email, confirmPassword, newPassword, currentPassword } = data + + const requiredCustomFields = + extraFields.filter( + (item: CustomFieldItems) => item.required && item.custom + ) || [] const formData = new URLSearchParams() const token = getXsrfToken() || '' formData.append('FormField[1][1]', email) @@ -55,6 +60,22 @@ function sendEmail(data: any) { formData.append('FormField[1][2]', newPassword) formData.append('FormField[1][3]', confirmPassword) formData.append('authenticity_token', token) + + // extra + if (requiredCustomFields.length) { + requiredCustomFields.forEach((item: Partial) => { + if (item.name?.includes('_')) { + const key = item.name?.split('_')[1] + const { formFields } = data + const val = formFields.find( + (field: Partial) => field.name === item.bcLabel + ).value + formData.append(`FormField[1][${key}]`, val) + console.log(key, val) + } + }) + } + const requestBody: string = formData.toString() sendUpdateAccountRequest(requestBody) diff --git a/apps/storefront/src/pages/registered/config.ts b/apps/storefront/src/pages/registered/config.ts index 2461ea44..321a1ad0 100644 --- a/apps/storefront/src/pages/registered/config.ts +++ b/apps/storefront/src/pages/registered/config.ts @@ -378,7 +378,8 @@ export const getAccountFormFields = ( const filterVisibleAccountFormFields: AccountFormFieldsList = accountFormFields ? (accountFormFields as any).filter( - (item: Partial) => !!item.visible + (item: Partial) => + !!item.visible || (!!item.custom && !!item.isRequired) ) : []