Created
April 19, 2020 13:42
-
-
Save KirdesMF/11c98a61f8b5b832925e0a73ee75e3f5 to your computer and use it in GitHub Desktop.
Helper / util to check value in a form
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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