Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { useContext, useState, useEffect } from "react";
  2. import { Redirect } from "react-router-dom";
  3. import BeVegan from "../images/BeVeganIcon.png";
  4. import {
  5.   LoginPage,
  6.   FormArea,
  7.   LoginForm,
  8.   InputWrapper,
  9.   LoginFlex
  10. } from "../styles/LoginStyle";
  11. import {
  12.   StyleLink,
  13.   Image,
  14.   TextField,
  15.   FormButton
  16. } from "../styles/RegisterStyle";
  17. import { NewLoginInfo } from "../context/LoginInfo";
  18. const goLoginPage = () => {
  19.   const [timeToRedirect, setTimeToRedirect] = useState(false);
  20.  
  21.   useEffect(() => {
  22.     setTimeout(() => setTimeToRedirect(true), 3000);
  23.   }, []);
  24.  
  25.   return <div>{timeToRedirect && <Redirect to="/" />}</div>;
  26. };
  27. const Register = () => {
  28.   const [tempRegister, addTempRegister] = useState([]);
  29.   const [isError, setError] = useState(undefined);
  30.   const [timeToRedirect, setTimeToRedirect] = useState(false);
  31.  
  32.   useEffect(() => {
  33.     setTimeout(() => setTimeToRedirect(true), 3000);
  34.   }, []);
  35.  
  36.   let w = {
  37.     login: "",
  38.     password: "",
  39.     repassword: "",
  40.     mail: "",
  41.     name: ""
  42.   };
  43.  
  44.   const validateEmail = email => {
  45.     var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  46.     return re.test(String(email).toLowerCase());
  47.   };
  48.   const addTempLogin = event => {
  49.     addTempRegister({ ...tempRegister, login: event.target.value });
  50.   };
  51.   const addTempPassword = event => {
  52.     addTempRegister({ ...tempRegister, password: event.target.value });
  53.   };
  54.   const addTempRePassword = event => {
  55.     addTempRegister({ ...tempRegister, repassword: event.target.value });
  56.   };
  57.   const addTempMail = event => {
  58.     addTempRegister({ ...tempRegister, mail: event.target.value });
  59.   };
  60.   const addTempName = event => {
  61.     addTempRegister({ ...tempRegister, name: event.target.value });
  62.   };
  63.  
  64.   const registerUser = () => {
  65.     if (
  66.       tempRegister.password === tempRegister.repassword &&
  67.       validateEmail(tempRegister.mail) &&
  68.       tempRegister.login.length > 4 &&
  69.       tempRegister.password.length > 4
  70.     ) {
  71.       w = Object.assign({}, tempRegister);
  72.       setError(false);
  73.     } else {
  74.       setError(true);
  75.     }
  76.     addTempRegister({
  77.       login: "",
  78.       password: "",
  79.       repassword: "",
  80.       mail: "",
  81.       name: ""
  82.     });
  83.   };
  84.   const user = useContext(NewLoginInfo);
  85.   return (
  86.     <LoginPage>
  87.       {user.username != "" && <Redirect to="/page" />}
  88.       <LoginFlex>
  89.         <FormArea>
  90.           <Image src={BeVegan} alt="be vegan logo" />
  91.           <link
  92.             href="https://fonts.googleapis.com/css?family=Titillium+Web:300,400,700"
  93.             rel="stylesheet"
  94.           ></link>
  95.           {isError == false && (
  96.             <div>
  97.               <p className="successMessage">Udało się zarejestrować</p>
  98.               <goLoginPage />
  99.             </div>
  100.           )}
  101.           {isError == true && (
  102.             <p className="errorMessage">
  103.               Rejestracja zakończona niepowodzeniem
  104.             </p>
  105.           )}
  106.           <LoginForm>
  107.             <InputWrapper>
  108.               <label for="username">Login:</label>
  109.               <TextField
  110.                 placeholder="Wpisz swoją nazwę użytkownika"
  111.                 type="text"
  112.                 id="username"
  113.                 onChange={addTempLogin}
  114.                 value={tempRegister.login}
  115.               />
  116.             </InputWrapper>
  117.             <InputWrapper>
  118.               <label for="password">Hasło:</label>
  119.               <TextField
  120.                 placeholder="Wpisz swoje hasło"
  121.                 type="password"
  122.                 id="password"
  123.                 onChange={addTempPassword}
  124.                 value={tempRegister.password}
  125.               />
  126.             </InputWrapper>
  127.             <InputWrapper>
  128.               <label for="repassword">Powtórz hasło:</label>
  129.               <TextField
  130.                 placeholder="Wpisz swoje hasło ponownie"
  131.                 type="password"
  132.                 id="repassword"
  133.                 onChange={addTempRePassword}
  134.                 value={tempRegister.repassword}
  135.               />
  136.             </InputWrapper>
  137.             <InputWrapper>
  138.               <label for="name">Imię:</label>
  139.               <TextField
  140.                 placeholder="Wpisz swoje imię"
  141.                 type="text"
  142.                 id="name"
  143.                 onChange={addTempName}
  144.                 value={tempRegister.name}
  145.               />
  146.             </InputWrapper>
  147.             <InputWrapper>
  148.               <label for="mail">Adres e-mail:</label>
  149.               <TextField
  150.                 placeholder="Wpisz swój adres e-mail"
  151.                 type="text"
  152.                 id="mail"
  153.                 onChange={addTempMail}
  154.                 value={tempRegister.mail}
  155.               />
  156.             </InputWrapper>
  157.  
  158.             <FormButton
  159.               type="button"
  160.               value="Zarejestruj się"
  161.               onClick={registerUser}
  162.             />
  163.           </LoginForm>
  164.           <StyleLink to="/">Masz konto ? Zaloguj się !</StyleLink>
  165.         </FormArea>
  166.       </LoginFlex>
  167.     </LoginPage>
  168.   );
  169. };
  170. export default Register;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement