Skip to content

Commit

Permalink
feat: 🎨 code refactored (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
likhith-deriv committed May 10, 2023
1 parent 18716a1 commit 157fb40
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ import {
} from '@deriv/components';
import { isDesktop, isMobile, PlatformContext, IDV_NOT_APPLICABLE_OPTION } from '@deriv/shared';
import { localize, Localize } from '@deriv/translations';
import { shouldShowIdentityInformation, documentAdditionalError, getRegex } from 'Helpers/utils';
import {
shouldShowIdentityInformation,
documentAdditionalError,
getRegex,
removeUndefinedProperties,
} from 'Helpers/utils';
import { splitValidationResultTypes } from '../real-account-signup/helpers/utils';
import IDVForm from '../forms/idv-form';
import PersonalDetailsForm from '../forms/personal-details-form';
Expand Down Expand Up @@ -117,7 +122,7 @@ const PersonalDetails = ({
}

errors.document_number = isDocumentNumberValid(document_number, document_type);
return errors;
return removeUndefinedProperties(errors);
};

const handleValidate = values => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
filterObjProperties,
isDesktop,
} from '@deriv/shared';
import { documentAdditionalError, getRegex, validate } from 'Helpers/utils';
import { documentAdditionalError, getRegex, validate, removeUndefinedProperties } from 'Helpers/utils';
import FormFooter from 'Components/form-footer';
import BackButtonIcon from 'Assets/ic-poi-back-btn.svg';
import IDVForm from 'Components/forms/idv-form';
Expand Down Expand Up @@ -115,7 +115,7 @@ const IdvDocumentSubmit = ({
errors.first_name = validateName(values.first_name, min_name, max_name);
errors.last_name = validateName(values.last_name, min_name, max_name);

return errors;
return removeUndefinedProperties(errors);
};

const makeSettingsRequest = settings => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { localize } from '@deriv/translations';
import classNames from 'classnames';
import { Button } from '@deriv/components';
import { filterObjProperties, toMoment, validLength, validName, IDV_NOT_APPLICABLE_OPTION } from '@deriv/shared';
import { documentAdditionalError, getRegex, validate } from 'Helpers/utils';
import { documentAdditionalError, getRegex, validate, removeUndefinedProperties } from 'Helpers/utils';
import FormSubHeader from 'Components/form-sub-header';
import IDVForm from 'Components/forms/idv-form';
import PersonalDetailsForm from 'Components/forms/personal-details-form';
Expand Down Expand Up @@ -92,7 +92,7 @@ export const IdvDocSubmitOnSignup = ({
errors.first_name = validateName(values.first_name, min_name, max_name);
errors.last_name = validateName(values.last_name, min_name, max_name);

return errors;
return removeUndefinedProperties(errors);
};

const visible_settings = ['first_name', 'last_name', 'date_of_birth'];
Expand Down
9 changes: 9 additions & 0 deletions packages/account/src/Helpers/__tests__/utils.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
getRegex,
preventEmptyClipboardPaste,
isFieldImmutable,
removeUndefinedProperties,
} from '../utils';

describe('generatePlaceholderText', () => {
Expand Down Expand Up @@ -163,3 +164,11 @@ describe('isFieldImmutable', () => {
expect(isFieldImmutable('test3', mutable_field_set)).toBeTruthy();
});
});

describe('removeUndefinedProperties', () => {
it('should remove undefined properties', () => {
const data = { name: 'test', age: undefined, email: '', phone: undefined };
const new_data = removeUndefinedProperties(data);
expect(new_data).toEqual({ name: 'test', email: '' });
});
});
5 changes: 5 additions & 0 deletions packages/account/src/Helpers/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,3 +227,8 @@ export const validate =
};

export const isFieldImmutable = (field: string, mutable_fields: string[] = []) => !mutable_fields.includes(field);

export const removeUndefinedProperties = (obj: Record<string, any>) => {
Object.keys(obj).forEach(key => obj[key] === undefined && delete obj[key]);
return obj;
};

0 comments on commit 157fb40

Please sign in to comment.