signIn.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from "react";
  2. import { useForm } from "./hooks/useForm";
  3. import Input from "./input";
  4. import Button from "./button";
  5. import { logInForm } from "../utils/formFields";
  6. export const SignInForm = ({ error, submitHandler }) => {
  7. const [form, { onChangeHandler, returnAllValues, focusEvent, blurEvent }] = useForm(logInForm);
  8. const submit = e => {
  9. e.preventDefault();
  10. const values = returnAllValues();
  11. submitHandler(values);
  12. };
  13. return (
  14. <div className="auth__auth-box">
  15. <form onSubmit={submit} className="auth__auth-form">
  16. {Object.keys(form.form).map(input_name => {
  17. return (
  18. <Input
  19. key={form.form[input_name].id}
  20. id={form.form[input_name].id}
  21. value={form.form[input_name].value}
  22. name={form.form[input_name].name}
  23. type={form.form[input_name].type}
  24. fail={form.form[input_name].fail}
  25. touch={form.form[input_name].touch}
  26. label={form.form[input_name].label}
  27. onChange={onChangeHandler}
  28. onFocus={focusEvent}
  29. onBlur={blurEvent}
  30. />
  31. );
  32. })}
  33. {error && <p className="auth__error-auth-text">{error}</p>}
  34. <div className="auth__control-box">
  35. <Button disabled={!form.validForm} className="auth__submit-btn" type="submit" text="Log In" />
  36. </div>
  37. </form>
  38. </div>
  39. );
  40. };