Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 50 additions & 30 deletions frontend/src/views/MainPage/SignUp/index.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { useState } from 'react';
import { Link } from 'react-router-dom';
import Styles from './../Form.module.css';
import { useDispatch } from 'react-redux';
//icons
import { AiOutlineEyeInvisible, AiOutlineEye } from 'react-icons/ai';
Expand Down Expand Up @@ -32,66 +31,87 @@ const SignUp = () => {
const regex = /^[-\w.%+]{1,64}@(?:[A-Z0-9-]{1,63}\.){1,125}[A-Z]{2,63}$/i;
return regex.test(string);
};
const emailInvalid = !validateEmail(data.email) && data.email !== '';

const inputClasses = `mt-2 mb-1 w-full rounded border bg-white px-4 py-3 text-lg text-[#335065] outline-none transition focus:border-[#6254ff] focus:ring-2 focus:ring-[#6254ff]/20 ${
emailInvalid ? 'border-[#D83341]' : 'border-[#cadbe3]'
}`;

return (
<form className={Styles[`form`]} onSubmit={handleSubmit}>
<p className={Styles[`title`]}>Despega tu futuro 🚀</p>
<p className={Styles[`subtitle`]}>Regístrate para ingresar a nuestra plataforma</p>
<div className="container-input">
<form className="flex w-[90%] flex-col md:w-4/5 xl:w-[68%]" onSubmit={handleSubmit}>
<p className="mb-2 text-[28px] leading-tight text-[#0d1e38] [font-family:'Rubik-Bold',serif]">
Despega tu futuro 🚀
</p>
<p className="mb-8 text-lg text-[#0d1e38] [font-family:'SourceSansPro-SemiBold',serif]">
Regístrate para ingresar a nuestra plataforma
</p>
<div className="flex flex-col">
<label className="sr-only" htmlFor="signup-email">
Email
</label>
<input
className={Styles[`form-input`]}
style={
!validateEmail(data.email) && data.email !== ''
? { border: '1px solid #D83341' }
: {}
}
id="signup-email"
className={inputClasses}
type="email"
name="email"
value={data.email}
onChange={handleChange}
placeholder="Email"
aria-invalid={emailInvalid}
/>
{!validateEmail(data.email) && data.email !== '' && (
<p className={Styles[`form-input-error`]}>
<BiError />
{emailInvalid && (
<p className="flex items-center gap-1 text-sm text-[#D83341]">
<BiError aria-hidden="true" />
Invalid email. Please try again.
</p>
)}
</div>
<div className={Styles[`form-div-password`]}>
<div className="relative">
<label className="sr-only" htmlFor="signup-password">
Password
</label>
<input
className={Styles[`form-input`]}
id="signup-password"
className="mt-2 mb-1 w-full rounded border border-[#cadbe3] bg-white py-3 pl-4 pr-12 text-lg text-[#335065] outline-none transition focus:border-[#6254ff] focus:ring-2 focus:ring-[#6254ff]/20"
type={hidden ? 'text' : 'password'}
name="password"
value={data.password}
onChange={handleChange}
placeholder="Password"
/>
{hidden ? (
<AiOutlineEyeInvisible
className={Styles[`form-icon-eye`]}
onClick={handleHidden}
/>
) : (
<AiOutlineEye className={Styles[`form-icon-eye`]} onClick={handleHidden} />
)}
<button
aria-label={hidden ? 'Hide password' : 'Show password'}
className="absolute right-4 top-[22px] text-2xl text-[#7291a0] transition hover:text-[#335065] focus:outline-none focus:ring-2 focus:ring-[#6254ff]/30"
type="button"
onClick={handleHidden}
>
{hidden ? (
<AiOutlineEyeInvisible aria-hidden="true" />
) : (
<AiOutlineEye aria-hidden="true" />
)}
</button>
</div>
<button
className={Styles[`form-button`]}
className="mb-3 mt-3 h-[47px] rounded border-0 bg-[#6254ff] text-base text-white transition hover:bg-[#5145d9] disabled:bg-[#f0f0f0] disabled:text-[#8f9aa3]"
disabled={!data.email || !data.password || !validateEmail(data.email)}
type="submit"
>
Registrarme
</button>
<div className={Styles[`additional-text`]}>
<p className={Styles[`additional-text3`]}>
<div className="min-h-[76px] w-full">
<p className="mt-6 text-center text-sm text-[#335065]">
¿Ya tienes una cuenta?{' '}
<Link to="/log-in" className={Styles[`additional-link`]}>
<Link
to="/log-in"
className="font-semibold text-[#2764ff] no-underline transition hover:text-[#1d4ed8]"
>
Ingresa aquí
</Link>
</p>
{error && (
<p className={Styles[`form-error`]}>
<BiError className={Styles[`form-icon-error`]} />
<p className="mt-3 flex w-full items-center rounded text-sm text-[#D83341]">
<BiError className="mr-1 h-5 w-5" aria-hidden="true" />
{error}
</p>
)}
Expand Down