form manager
npm install @softmg/effector-react-formClone based on effector-react-form
Connect your forms with state manager
``shellYarn
yarn add @softmg/effector-react-form
Short example
Create single form`js
import { createForm } from '@softmg/effector-react-form';const form = createForm({
initialValues: {
userName: '',
email: '',
password: '',
repeatPassword: '',
},
onSubmit: ({ values }) => // your post method,
});
`Set this form to our jsx
`tsx
import { useForm } from '@softmg/effector-react-form';const validateFields = (value) => {
if (!value) return 'Field is required';
if (value.length < 4) return 'Minimum of 4 characters';
return undefined;
};
const Form = () => {
const { controller, handleSubmit, submit } = useForm({ form: formSignIn });
return (
);
};
`Custom Input component
`tsx
const Input = ({ controller, label }) => {
const { input,isShowError, error } = controller(); return (
{isShowError && {error}}
);
};
`createForm arguments
Accepts an object with following optional params:name: form name
validate: function, for validation values of the form.
Example:
`tsx
const validateForm = ({ values }) => {
const errors = {}; if (values.newPassword !== values.repeatPassword) {
errors.newPassword = 'passwordsDontMatch';
errors.repeatPassword = 'passwordsDontMatch';
}
if (values.newPassword && values.newPassword === values.oldPassword) {
errors.newPassword = 'passwordMustDiffer';
}
return errors;
};
`
mapSubmit: a function that transforms data that received from the form fields before passing it to the onSubmit function.
onSubmit: a function that fires on a form submit even.
onSubmitGuardFn: before the onSubmit function is executed, the value of this field is checked. By default, it contains a predicate function that checks if there are validation errors in form fields. If there are no errors, it returns true and onSubmit is triggered. You can pass your own predicate function that will accept the values of the form fields and an object with meta.
onChange: a function that
s triggered when the form fields change.initalValues: an object with initial values of your form fields.
Example:
``ts``
const initialValues = {
name: "John",
lastName: "Smith"
}
initialMeta: an object with initial values of your form fields.
resetOuterErrorsBySubmit: takes true / false. Determines whether outer form errors should be cleared on the onSubmit event. The default is true.
resetOuterErrorByOnChange: takes true / false. Determines whether outer form errors should be cleared on the onChange event. The default is true.