Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

SecondPartOfRegistration.js 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import React, { useEffect, useState } from "react";
  2. import PropTypes from "prop-types";
  3. import {
  4. ErrorMessage,
  5. FormContainer,
  6. // RegisterDescription,
  7. } from "./SecondPartOfRegistration.styled";
  8. import { useFormik } from "formik";
  9. import * as Yup from "yup";
  10. import { useTranslation } from "react-i18next";
  11. import { TextField } from "../../../../components/TextFields/TextField/TextField";
  12. import { PrimaryButton } from "../../../../components/Buttons/PrimaryButton/PrimaryButton";
  13. import selectedTheme from "../../../../themes";
  14. const SecondPartOfRegistration = (props) => {
  15. const { t } = useTranslation();
  16. const [PIBTakenStatus, setPIBTakenStatus] = useState(false);
  17. useEffect(() => {
  18. if (props.error.length > 0) {
  19. setPIBTakenStatus(true);
  20. }
  21. }, [props.error]);
  22. useEffect(() => {
  23. if (props.informations?.nameOfFirm) {
  24. formik.setFieldValue("nameOfFirm", props.informations?.nameOfFirm);
  25. formik.setFieldValue("PIB", props.informations.PIB);
  26. }
  27. }, [props.informations]);
  28. const formik = useFormik({
  29. initialValues: {
  30. nameOfFirm: "",
  31. PIB: "",
  32. },
  33. validationSchema: Yup.object().shape({
  34. nameOfFirm: Yup.string().required(t("login.usernameRequired")),
  35. PIB: Yup.string()
  36. .required(t("login.passwordRequired"))
  37. .min(9, t("register.PIBnoOfCharacters"))
  38. .max(9, t("register.PIBnoOfCharacters")),
  39. }),
  40. onSubmit: props.handleSubmit,
  41. validateOnBlur: true,
  42. enableReinitialize: true,
  43. });
  44. return (
  45. <FormContainer component="form" onSubmit={formik.handleSubmit}>
  46. {/* <RegisterDescription component="p" variant="p">
  47. {t("register.descriptionSecond")}
  48. </RegisterDescription> */}
  49. <TextField
  50. name="nameOfFirm"
  51. placeholder={t("common.labelFirm")}
  52. margin="normal"
  53. value={formik.values.nameOfFirm}
  54. onChange={formik.handleChange}
  55. error={
  56. (formik.touched.nameOfFirm && Boolean(formik.errors.nameOfFirm)) ||
  57. props?.companyNameError
  58. }
  59. helperText={formik.touched.nameOfFirm && formik.errors.nameOfFirm}
  60. autoFocus
  61. fullWidth
  62. />
  63. <TextField
  64. name="PIB"
  65. placeholder={t("common.labelPIB")}
  66. margin="normal"
  67. type="number"
  68. value={formik.values.PIB}
  69. onChange={(event) => {
  70. formik.setFieldValue("PIB", event.target.value);
  71. }}
  72. error={
  73. (formik.touched.PIB && Boolean(formik.errors.PIB)) || PIBTakenStatus
  74. }
  75. helperText={formik.touched.PIB && formik.errors.PIB}
  76. fullWidth
  77. />
  78. {formik.errors.PIB && formik.touched.PIB && (
  79. <ErrorMessage>{formik.errors.PIB}</ErrorMessage>
  80. )}
  81. {(props.error || props?.companyNameError) && (
  82. <ErrorMessage>
  83. {props.errorMessage || props?.companyNameError}
  84. </ErrorMessage>
  85. )}
  86. <PrimaryButton
  87. type="submit"
  88. variant="contained"
  89. height="48px"
  90. fullWidth
  91. buttoncolor={selectedTheme.colors.primaryPurple}
  92. textcolor="white"
  93. disabled={
  94. formik.values.PIB.length === 0 ||
  95. formik.values.nameOfFirm.length === 0 ||
  96. formik.values.PIB.toString() === props.error
  97. }
  98. >
  99. {t("common.continue")}
  100. </PrimaryButton>
  101. </FormContainer>
  102. );
  103. };
  104. SecondPartOfRegistration.propTypes = {
  105. children: PropTypes.node,
  106. handleSubmit: PropTypes.func,
  107. informations: PropTypes.any,
  108. error: PropTypes.string,
  109. errorMessage: PropTypes.string,
  110. companyNameError: PropTypes.string,
  111. };
  112. export default SecondPartOfRegistration;