Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UpdateInfo.js 3.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { ErrorMessage, Field, Form, Formik } from "formik";
  2. import * as Yup from "yup";
  3. const initialValues = {
  4. email: "",
  5. password: "",
  6. };
  7. const UpdateInfoSchema = Yup.object().shape({
  8. email: Yup.string().email("Email is invalid").required("Email is required"),
  9. password: Yup.string()
  10. .min(6, "Password must be at least 6 characters")
  11. .required("Password is required"),
  12. });
  13. function UpdateInfo() {
  14. return (
  15. <>
  16. <Formik
  17. initialValues={initialValues}
  18. validationSchema={UpdateInfoSchema}
  19. onSubmit={(fields) => {
  20. alert(
  21. "SUCCESS!! :-)\n\n" + JSON.stringify(fields, null, 4)
  22. );
  23. }}
  24. >
  25. {({ errors, status, touched }) => (
  26. <Form>
  27. <div className="row">
  28. <div className="col-12 mb-3">
  29. <label className="form-label">Email</label>
  30. <Field
  31. name="email"
  32. type="text"
  33. className={
  34. "form-control" +
  35. (errors.email && touched.email
  36. ? " is-invalid"
  37. : "")
  38. }
  39. />
  40. <ErrorMessage
  41. name="email"
  42. component="div"
  43. className="invalid-feedback"
  44. />
  45. </div>
  46. <div className="col-12 mb-3">
  47. <label className="form-label">Password</label>
  48. <Field
  49. name="password"
  50. type="text"
  51. className={
  52. "form-control" +
  53. (errors.password && touched.password
  54. ? " is-invalid"
  55. : "")
  56. }
  57. />
  58. <ErrorMessage
  59. name="password"
  60. component="div"
  61. className="invalid-feedback"
  62. />
  63. </div>
  64. </div>
  65. <div className="mt-3">
  66. <button
  67. type="submit"
  68. className="btn btn-primary mr-2"
  69. >
  70. Save
  71. </button>
  72. </div>
  73. </Form>
  74. )}
  75. </Formik>
  76. </>
  77. );
  78. }
  79. export default UpdateInfo;