Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@KirdesMF
Created April 19, 2020 13:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KirdesMF/11c98a61f8b5b832925e0a73ee75e3f5 to your computer and use it in GitHub Desktop.
Save KirdesMF/11c98a61f8b5b832925e0a73ee75e3f5 to your computer and use it in GitHub Desktop.
Helper / util to check value in a form
export const checkErrorsInput = (name, value) => {
let errors = {};
const options = {
isRequired: value.length === 0,
isInvalidName: value.length < 5,
isInvalidMessage: value.length < 15,
isInvalidMail: !/\S+@\S+\.\S+/.test(String(value).toLocaleLowerCase()),
isInvalidPhone: !/\b[\d]{10}\b/.test(value),
};
const messagesError = {
required: 'Champs Requis',
name: 'invalid name',
mail: 'invalid mail',
phone: 'invalid phone',
message: 'invalid message',
valid: '',
};
const inputs = {
name: () => {
if (options.isRequired) errors.name = messagesError.required;
else if (options.isInvalidName) errors.name = messagesError.name;
else errors.name = messagesError.valid;
},
mail: () => {
if (options.isRequired) errors.mail = messagesError.required;
else if (options.isInvalidMail) errors.mail = messagesError.mail;
else errors.mail = messagesError.valid;
},
phone: () => {
!options.isRequired && options.isInvalidPhone
? (errors.phone = messagesError.phone)
: (errors.phone = messagesError.valid);
},
message: () => {
if (options.isRequired) errors.message = messagesError.required;
else if (options.isInvalidMessage)
errors.message = messagesError.message;
else errors.message = messagesError.valid;
},
default: () => {
return errors;
},
};
(inputs[name] || inputs['default'])();
return errors;
};
export const checkErrorsForm = (values) => {
let finalErrors;
let hasNoErrors = false;
Object.entries(values).forEach(([name, value]) => {
finalErrors = {
...finalErrors,
...checkErrorsInput(name, value),
};
});
hasNoErrors = !Object.values(finalErrors).some((elem) => elem !== '');
return { finalErrors, hasNoErrors };
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment