Skip to content

Commit

Permalink
refactor(account-settings): reorganise account settings update
Browse files Browse the repository at this point in the history
Separate payload preparation from the update process.
Purify and simplify handleGetUserExtraFields.

B2B-2158
  • Loading branch information
icatalina committed Feb 5, 2025
1 parent 280c3a2 commit a933208
Showing 1 changed file with 23 additions and 35 deletions.
58 changes: 23 additions & 35 deletions apps/storefront/src/pages/AccountSetting/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,6 @@ function AccountSetting() {
try {
setLoading(true);

const accountFormAllFields = await getB2BAccountFormFields(isBCUser ? 1 : 2);

const fn = isBCUser ? getBCAccountSettings : getB2BAccountSettings;

const params = isBCUser
Expand All @@ -132,6 +130,7 @@ function AccountSetting() {

const { [key]: accountSettings } = await fn(params);

const accountFormAllFields = await getB2BAccountFormFields(isBCUser ? 1 : 2);
const accountFormFields = getAccountFormFields(
accountFormAllFields.accountFormFields || [],
);
Expand Down Expand Up @@ -201,19 +200,17 @@ function AccountSetting() {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

const handleGetUserExtraFields = (data: CustomFieldItems) => {
let userExtraFieldsInfo: CustomFieldItems[] = [];
const handleGetUserExtraFields = (
data: CustomFieldItems,
accountInfoFormFields: Partial<Fields>[],
) => {
const userExtraFields = accountInfoFormFields.filter(
(item: CustomFieldItems) => item.custom && item.groupId === 1,
);
if (userExtraFields.length > 0) {
userExtraFieldsInfo = userExtraFields.map((item: CustomFieldItems) => ({
fieldName: deCodeField(item?.name || ''),
fieldValue: data[item.name],
}));
}

return userExtraFieldsInfo;
return userExtraFields.map((item: CustomFieldItems) => ({
fieldName: deCodeField(item?.name || ''),
fieldValue: data[item.name],
}));
};

const handleAddUserClick = () => {
Expand Down Expand Up @@ -249,39 +246,30 @@ function AccountSetting() {
});
}

let userExtraFields: CustomFieldItems[] = [];
if (!isBCUser) {
userExtraFields = handleGetUserExtraFields(data);
}

const dataProcessingFn = isBCUser ? bcSubmitDataProcessing : b2bSubmitDataProcessing;

if (isValid && emailFlag && passwordFlag) {
const param = dataProcessingFn(data, accountSettings, decryptionFields, extraFields);
const dataProcessingFn = isBCUser ? bcSubmitDataProcessing : b2bSubmitDataProcessing;
const payload = dataProcessingFn(data, accountSettings, decryptionFields, extraFields);

if (param) {
if (payload) {
if (!isBCUser) {
param.companyId = companyId;
param.extraFields = userExtraFields;
payload.companyId = companyId;
payload.extraFields = handleGetUserExtraFields(data, accountInfoFormFields);
}

const requestFn = isBCUser ? updateBCAccountSettings : updateB2BAccountSettings;

const newParams: CustomFieldItems = {
...param,
currentPassword: param.currentPassword,
};

if (param.newPassword === '' && param.confirmPassword === '') {
delete newParams.newPassword;
delete newParams.confirmPassword;
if (payload.newPassword === '' && payload.confirmPassword === '') {
delete payload.newPassword;
delete payload.confirmPassword;
}
await requestFn(newParams);
} else {
}

if (!payload) {
snackbar.success(b3Lang('accountSettings.notification.noEdits'));
return;
}

const requestFn = isBCUser ? updateBCAccountSettings : updateB2BAccountSettings;
await requestFn(payload);

if (
(data.password && data.currentPassword) ||
customer.emailAddress !== trim(data.email)
Expand Down

0 comments on commit a933208

Please sign in to comment.