signIn.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. autoComplete="off"
  31. />
  32. );
  33. })}
  34. {error && <p className="auth__error-auth-text">{error}</p>}
  35. <div className="auth__control-box">
  36. <Button disabled={!form.validForm} className="auth__submit-btn" type="submit" text="Log In" />
  37. </div>
  38. </form>
  39. </div>
  40. );
  41. };