|
@@ -4,19 +4,13 @@ export const useForm = initialValues => {
|
|
const [form, setFormProp] = useState(initialValues);
|
|
const [form, setFormProp] = useState(initialValues);
|
|
|
|
|
|
const validator = (rules, value, allForm) => {
|
|
const validator = (rules, value, allForm) => {
|
|
- const { requred, minL, match } = rules;
|
|
|
|
|
|
+ const valid = Object.keys(rules).reduce((prev, elem) => {
|
|
|
|
+ if (prev) return true
|
|
|
|
+ const check = rules[elem].cb(value, allForm[rules[elem].match])
|
|
|
|
+ if (!prev && check) return check
|
|
|
|
|
|
- let valid = true;
|
|
|
|
- if (requred) {
|
|
|
|
- valid = value.trim() !== "" && valid;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (minL) {
|
|
|
|
- valid = value.trim().length < minL && valid;
|
|
|
|
- }
|
|
|
|
- if (match) {
|
|
|
|
- valid = value.trim() !== allForm[match] && valid;
|
|
|
|
- }
|
|
|
|
|
|
+ return false
|
|
|
|
+ }, false)
|
|
|
|
|
|
return valid;
|
|
return valid;
|
|
};
|
|
};
|
|
@@ -67,15 +61,14 @@ export const useForm = initialValues => {
|
|
}, {});
|
|
}, {});
|
|
|
|
|
|
setFormProp(prevState => {
|
|
setFormProp(prevState => {
|
|
- const lll = validator(prevState.form[name].validation, value, prevValues);
|
|
|
|
- console.log("lll", lll);
|
|
|
|
|
|
+ const valid = validator(prevState.form[name].validation, value, prevValues);
|
|
return {
|
|
return {
|
|
...prevState,
|
|
...prevState,
|
|
form: {
|
|
form: {
|
|
...prevState.form,
|
|
...prevState.form,
|
|
[name]: {
|
|
[name]: {
|
|
...prevState.form[name],
|
|
...prevState.form[name],
|
|
- fail: value ? lll : true
|
|
|
|
|
|
+ fail: value ? valid : true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|