Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

likhith/Fix validation message for payment methods #5187

Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
9a69649
Added appropriate error message
likhith-deriv Apr 11, 2022
00dbc13
Fixed error messages in Edit form
likhith-deriv Apr 11, 2022
98b3d01
Added validation for SWIFT
likhith-deriv Apr 11, 2022
b624c91
Added a hook to validate methods
likhith-deriv Apr 12, 2022
1b4ffec
Removed commented code
likhith-deriv Apr 12, 2022
71c2a41
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 14, 2022
33aad87
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 15, 2022
92badee
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 18, 2022
ce6e714
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 20, 2022
f6d1f37
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 21, 2022
8103b64
Refactored the code by moving the custom hook to hooks folder
likhith-deriv Apr 26, 2022
b360a8d
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 26, 2022
4d272e1
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 27, 2022
626f074
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Apr 29, 2022
52f5ddf
Minor bug fixes
likhith-deriv Apr 29, 2022
9d94749
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv May 6, 2022
aedad93
refactor: Renamed a variable
likhith-deriv May 6, 2022
ea8594b
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv May 11, 2022
18921b4
fix: added regex to allow more characters as valid
May 17, 2022
312f35a
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv May 17, 2022
9d35f9b
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv May 25, 2022
de645ec
fix: implemented button disabled
likhith-deriv May 27, 2022
d65d0a2
fix: changed the edit payment method
likhith-deriv May 27, 2022
99f5066
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv May 30, 2022
ec6d855
fix: added payment error message overlapping issue
likhith-deriv May 31, 2022
3fb8124
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv May 31, 2022
2fecd96
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Jun 6, 2022
7a1bee8
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Jun 6, 2022
c4559bf
Merge branch 'master' into fix_validation-message-for-payment-methods
likhith-deriv Jun 6, 2022
9eb2948
Merge branch 'master' into fix_validation-message-for-payment-methods
carolsachdeva Jun 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,55 +8,64 @@ import { useStores } from 'Stores';

const AddPaymentMethodForm = ({ should_show_separated_footer = false }) => {
const { my_profile_store } = useStores();
const no_symbols_regex = /^[a-zA-Z0-9\\\s.@_+-]+$/;
const no_symbols_message =
'{{field_name}} can only include letters, numbers, spaces, and any of these symbols: -+._@';
const max_characters_error_message = '{{field_name}} has exceeded maximum length of 200 characters.';

// The fields are rendered dynamically based on the response. This variable will hold a dictionary of field id and their name
const field_dictionary = my_profile_store.selected_payment_method_fields.reduce((dict, field_data) => {
return { ...dict, [field_data[0]]: field_data[1].display_name };
}, {});

// Generates suitable error message
const setErrorMessage = (user_input, field) => {
if (!no_symbols_regex.test(user_input)) {
return localize(no_symbols_message, { field_name: field_dictionary[field] });
} else if (user_input.length > 200) {
return localize(max_characters_error_message, { field_name: field_dictionary[field] });
}
return null;
};
yashim-deriv marked this conversation as resolved.
Show resolved Hide resolved

const validateFields = values => {
const errors = {};
const no_symbols_regex = /^[a-zA-Z0-9\\\s.@_+-]+$/;
const no_symbols_message = localize(
'This field can only include letters, numbers, spaces, and any of these symbols: -+._@'
);
const max_characters_error_message = localize('This field has exceeded maximum length of 200 characters.');

if (values.account) {
if (!no_symbols_regex.test(values.account)) {
errors.account = no_symbols_message;
} else if (values.account.length > 200) {
errors.account = max_characters_error_message;
const account_err_message = setErrorMessage(values.account, 'account');
if (account_err_message) {
errors.account = account_err_message;
}
}

if (values.bank_name) {
if (!no_symbols_regex.test(values.bank_name)) {
errors.bank_name = no_symbols_message;
} else if (values.bank_name.length > 200) {
errors.bank_name = max_characters_error_message;
const bank_name_err_message = setErrorMessage(values.bank_name, 'bank_name');
if (bank_name_err_message) {
errors.bank_name = bank_name_err_message;
}
}

if (values.branch) {
if (!no_symbols_regex.test(values.branch)) {
errors.branch = no_symbols_message;
} else if (values.branch.length > 200) {
errors.branch = max_characters_error_message;
const branch_err_message = setErrorMessage(values.branch, 'branch');
if (branch_err_message) {
errors.branch = branch_err_message;
}
}

if (values.instructions) {
if (!no_symbols_regex.test(values.instructions)) {
errors.instructions = no_symbols_message;
} else if (values.instructions.length > 200) {
errors.instructions = max_characters_error_message;
const instruction_err_message = setErrorMessage(values.instructions, 'instructions');
if (instruction_err_message) {
errors.instructions = instruction_err_message;
}
}

if (values.name) {
if (!no_symbols_regex.test(values.name)) {
errors.name = no_symbols_message;
} else if (values.name.length > 200) {
errors.name = max_characters_error_message;
const name_err_message = setErrorMessage(values.name, 'name');
if (name_err_message) {
errors.name = name_err_message;
}
}
if (values.bank_code) {
const bank_code_err_message = setErrorMessage(values.name, 'bank_code');
if (bank_code_err_message) {
errors.bank_code = bank_code_err_message;
}
}

return errors;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,55 +7,64 @@ import { useStores } from 'Stores';

const EditPaymentMethodForm = () => {
const { my_profile_store } = useStores();
const no_symbols_regex = /^[a-zA-Z0-9\\\s.@_+-]+$/;
const no_symbols_message =
'{{field_name}} can only include letters, numbers, spaces, and any of these symbols: -+._@';
const max_characters_error_message = '{{field_name}} has exceeded maximum length of 200 characters.';

// The fields are rendered dynamically based on the response. This variable will hold a dictionary of field id and their name
const field_dictionary = my_profile_store.selected_payment_method_fields.reduce((dict, field_data) => {
return { ...dict, [field_data[0]]: field_data[1].display_name };
}, {});

// Generates suitable error message
const setErrorMessage = (user_input, field) => {
if (!no_symbols_regex.test(user_input)) {
return localize(no_symbols_message, { field_name: field_dictionary[field] });
} else if (user_input.length > 200) {
return localize(max_characters_error_message, { field_name: field_dictionary[field] });
}
return null;
};

const validateFields = values => {
const errors = {};
const no_symbols_regex = /^[a-zA-Z0-9\\\s.@_+-]+$/;
const no_symbols_message = localize(
'This field can only include letters, numbers, spaces, and any of these symbols: -+._@'
);
const max_characters_error_message = localize('This field has exceeded maximum length of 200 characters.');

if (values.account) {
if (!no_symbols_regex.test(values.account)) {
errors.account = no_symbols_message;
} else if (values.account.length > 200) {
errors.account = max_characters_error_message;
const account_err_message = setErrorMessage(values.account, 'account');
if (account_err_message) {
errors.account = account_err_message;
}
}

if (values.bank_name) {
if (!no_symbols_regex.test(values.bank_name)) {
errors.bank_name = no_symbols_message;
} else if (values.bank_name.length > 200) {
errors.bank_name = max_characters_error_message;
const bank_name_err_message = setErrorMessage(values.bank_name, 'bank_name');
if (bank_name_err_message) {
errors.bank_name = bank_name_err_message;
}
}

if (values.branch) {
if (!no_symbols_regex.test(values.branch)) {
errors.branch = no_symbols_message;
} else if (values.branch.length > 200) {
errors.branch = max_characters_error_message;
const branch_err_message = setErrorMessage(values.branch, 'branch');
if (branch_err_message) {
errors.branch = branch_err_message;
}
}

if (values.instructions) {
if (!no_symbols_regex.test(values.instructions)) {
errors.instructions = no_symbols_message;
} else if (values.instructions.length > 200) {
errors.instructions = max_characters_error_message;
const instruction_err_message = setErrorMessage(values.instructions, 'instructions');
if (instruction_err_message) {
errors.instructions = instruction_err_message;
}
}

if (values.name) {
if (!no_symbols_regex.test(values.name)) {
errors.name = no_symbols_message;
} else if (values.name.length > 200) {
errors.name = max_characters_error_message;
const name_err_message = setErrorMessage(values.name, 'name');
if (name_err_message) {
errors.name = name_err_message;
}
}
if (values.bank_code) {
const bank_code_err_message = setErrorMessage(values.name, 'bank_code');
if (bank_code_err_message) {
errors.bank_code = bank_code_err_message;
}
}

return errors;
};

Expand Down