reset and confirm modals
This commit is contained in:
parent
7c7ea86c8c
commit
e0b289c3fd
@ -12,6 +12,7 @@ import AuthForPartners from "./pages/AuthForPartners/AuthForPartners";
|
|||||||
import AuthForDevelopers from "./pages/AuthForDevelopers/AuthForDevelopers";
|
import AuthForDevelopers from "./pages/AuthForDevelopers/AuthForDevelopers";
|
||||||
import { TrackerIntro } from "./pages/TrackerIntro/TrackerIntro"
|
import { TrackerIntro } from "./pages/TrackerIntro/TrackerIntro"
|
||||||
import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
|
import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
|
||||||
|
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
|
||||||
import Home from "./pages/Home/Home";
|
import Home from "./pages/Home/Home";
|
||||||
import Candidate from "./components/Candidate/Candidate";
|
import Candidate from "./components/Candidate/Candidate";
|
||||||
import Calendar from "./components/Calendar/Calendar";
|
import Calendar from "./components/Calendar/Calendar";
|
||||||
@ -61,6 +62,7 @@ const App = () => {
|
|||||||
<Route exact path="/auth" element={<AuthForPartners />} />
|
<Route exact path="/auth" element={<AuthForPartners />} />
|
||||||
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
||||||
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
||||||
|
<Route exact path="/tracker-registration" element={<TrackerRegistration />} />
|
||||||
|
|
||||||
<Route exact path="/worker/:id" element={<FreeDevelopers />} />
|
<Route exact path="/worker/:id" element={<FreeDevelopers />} />
|
||||||
<Route
|
<Route
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 24 KiB |
BIN
src/assets/images/trackerRegistrationImg.png
Normal file
BIN
src/assets/images/trackerRegistrationImg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
@ -4,7 +4,7 @@ import authImg from "assets/images/partnerProfile/authCandidateFormImg.png";
|
|||||||
|
|
||||||
import "./authBlock.scss";
|
import "./authBlock.scss";
|
||||||
|
|
||||||
export const AuthBlock = ({ title, description, img }) => {
|
export const AuthBlock = ({ title, description, img, resetModal }) => {
|
||||||
return (
|
return (
|
||||||
<div className="auth__wrapper">
|
<div className="auth__wrapper">
|
||||||
<div className="auth__info">
|
<div className="auth__info">
|
||||||
@ -31,7 +31,7 @@ export const AuthBlock = ({ title, description, img }) => {
|
|||||||
>
|
>
|
||||||
Войти
|
Войти
|
||||||
</button>
|
</button>
|
||||||
<span>Вспомнить пароль</span>
|
<span onClick={() => resetModal(true)}>Вспомнить пароль</span>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{img && <img src={img} alt="authImg" className="auth__img" />}
|
{img && <img src={img} alt="authImg" className="auth__img" />}
|
||||||
|
@ -103,7 +103,7 @@
|
|||||||
|
|
||||||
&__img {
|
&__img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 10px;
|
right: 48px;
|
||||||
top: -90px;
|
top: -90px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
19
src/components/Modal/ModalReset/ModalReset.js
Normal file
19
src/components/Modal/ModalReset/ModalReset.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
import close from "assets/icons/closeProjectPersons.svg";
|
||||||
|
|
||||||
|
import "./modalReset.scss";
|
||||||
|
|
||||||
|
export const ModalReset = ({ setModalReset }) => {
|
||||||
|
return (
|
||||||
|
<div className="modalReset">
|
||||||
|
<h3 className='modalReset__title'>Восстановление доступа</h3>
|
||||||
|
<div className='modalReset__input'>
|
||||||
|
<span>Укажите e-mail, для которого хотите восстановить пароль.</span>
|
||||||
|
<input placeholder='email'/>
|
||||||
|
</div>
|
||||||
|
<button className='modalReset__submit'>Восстановить</button>
|
||||||
|
<img onClick={() => setModalReset(false)} src={close} className='modalReset__close' alt='close' />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
59
src/components/Modal/ModalReset/modalReset.scss
Normal file
59
src/components/Modal/ModalReset/modalReset.scss
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
.modalReset {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
border-radius: 20px;
|
||||||
|
background: linear-gradient(180deg, #FFF 0%, #EBEBEB 100%);
|
||||||
|
padding: 23px 110px 8px 36px;
|
||||||
|
row-gap: 29px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&__title {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #263238;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__input {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
row-gap: 15px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 15px;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
padding: 8px 12px;
|
||||||
|
font-size: 15px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background-color: #EFF2F7;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
max-width: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__submit {
|
||||||
|
border-radius: 44px;
|
||||||
|
background: #52B709;
|
||||||
|
padding: 9px 46px;
|
||||||
|
color: #FFF;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 32px;
|
||||||
|
border: none;
|
||||||
|
max-width: 200px;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__close {
|
||||||
|
position: absolute;
|
||||||
|
top: 28px;
|
||||||
|
right: 28px;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
import close from "assets/icons/closeProjectPersons.svg";
|
||||||
|
|
||||||
|
import "./modalTrackerRegistration.scss";
|
||||||
|
|
||||||
|
export const ModalTrackerRegistration = ({ setModalReset }) => {
|
||||||
|
return (
|
||||||
|
<div className="modalConfirmTracker">
|
||||||
|
<h3 className='modalConfirmTracker__title'>Спасибо за регистрацию. Теперь можете войти в кабинет</h3>
|
||||||
|
<p className='modalConfirmTracker__info'>Мы отправили ссылку<br/>
|
||||||
|
для активации вашего аккаунта на почту<br/> <span>nhw44308@mail.com</span></p>
|
||||||
|
<button className='modalConfirmTracker__btn'>Перейти в почту</button>
|
||||||
|
<img onClick={() => setModalReset(false)} src={close} className='modalReset__close' alt='close' />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
@ -0,0 +1,39 @@
|
|||||||
|
.modalConfirmTracker {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
padding: 40px 40px 10px;
|
||||||
|
|
||||||
|
&__title {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 500;
|
||||||
|
max-width: 360px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__info {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 300;
|
||||||
|
max-width: 320px;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__btn {
|
||||||
|
border-radius: 44px;
|
||||||
|
background: #52B709;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 32px;
|
||||||
|
color: #FFF;
|
||||||
|
padding: 9px 37px;
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,11 @@
|
|||||||
import React from "react";
|
import React, {useState} from "react";
|
||||||
|
|
||||||
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
||||||
|
import {ModalReset} from "@components/Modal/ModalReset/ModalReset";
|
||||||
|
|
||||||
import arrowInfo from "assets/icons/trackerIntroInfo.svg";
|
import arrowInfo from "assets/icons/trackerIntroInfo.svg";
|
||||||
import trackerAuthImg from "assets/images/trackerAuthImg.png";
|
import trackerAuthImg from "assets/images/trackerAuthImg.png";
|
||||||
@ -11,6 +13,7 @@ import trackerAuthImg from "assets/images/trackerAuthImg.png";
|
|||||||
import "./trackerAuth.scss";
|
import "./trackerAuth.scss";
|
||||||
|
|
||||||
export const TrackerAuth = () => {
|
export const TrackerAuth = () => {
|
||||||
|
const [modalResetOpen, setModalReset] = useState(false)
|
||||||
return (
|
return (
|
||||||
<div className="trackerAuth">
|
<div className="trackerAuth">
|
||||||
<AuthHeader />
|
<AuthHeader />
|
||||||
@ -27,8 +30,14 @@ export const TrackerAuth = () => {
|
|||||||
<AuthBlock
|
<AuthBlock
|
||||||
description="Создавайте и редактируйте задачи и проекты вместе с другими участниками команды."
|
description="Создавайте и редактируйте задачи и проекты вместе с другими участниками команды."
|
||||||
img={trackerAuthImg}
|
img={trackerAuthImg}
|
||||||
|
resetModal={setModalReset}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
{modalResetOpen &&
|
||||||
|
<ModalLayout active={modalResetOpen} setActive={setModalReset}>
|
||||||
|
<ModalReset setModalReset={setModalReset} />
|
||||||
|
</ModalLayout>
|
||||||
|
}
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
71
src/pages/TrackerRegistration/TrackerRegistration.js
Normal file
71
src/pages/TrackerRegistration/TrackerRegistration.js
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import React, {useState} from "react";
|
||||||
|
|
||||||
|
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
||||||
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
import { ModalTrackerRegistration } from "@components/Modal/ModalTrackerRegistration/ModalTrackerRegistration"
|
||||||
|
|
||||||
|
import arrowInfo from "assets/icons/trackerIntroInfo.svg";
|
||||||
|
import authImg from "assets/images/partnerProfile/authCandidateFormImg.png";
|
||||||
|
import registrationImg from "assets/images/trackerRegistrationImg.png"
|
||||||
|
|
||||||
|
import "./trackerRegistration.scss";
|
||||||
|
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
||||||
|
|
||||||
|
export const TrackerRegistration = () => {
|
||||||
|
const [modalConfirmOpen, setModalConfirm] = useState(false)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="trackerRegistration">
|
||||||
|
<AuthHeader />
|
||||||
|
<SideBar />
|
||||||
|
<div className="trackerAuth__content">
|
||||||
|
<div className="container">
|
||||||
|
<h1 className="trackerAuth__title">
|
||||||
|
Создайте свое{" "}
|
||||||
|
<span>
|
||||||
|
рабочее пространство
|
||||||
|
<img src={arrowInfo} alt="arrow" />
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
<div className='trackerRegistration__form'>
|
||||||
|
<div className='trackerRegistration__form__inputs'>
|
||||||
|
<div className='trackerRegistration__inputContainer'>
|
||||||
|
<span>Ваше имя *</span>
|
||||||
|
<input placeholder='Имя' />
|
||||||
|
</div>
|
||||||
|
<div className='trackerRegistration__inputContainer'>
|
||||||
|
<span>Придумайте пароль*</span>
|
||||||
|
<input placeholder='Пароль' />
|
||||||
|
</div>
|
||||||
|
<div className='trackerRegistration__inputContainer'>
|
||||||
|
<span>Ваш email *</span>
|
||||||
|
<input placeholder='Email' type='email' />
|
||||||
|
</div>
|
||||||
|
<div className='trackerRegistration__inputContainer'>
|
||||||
|
<span>Повторите пароль*</span>
|
||||||
|
<input placeholder='Повторите пароль' />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className='trackerRegistration__form__submit'>
|
||||||
|
<button onClick={() => setModalConfirm(true)}>Отправить</button>
|
||||||
|
<div className='trackerRegistration__form__info'>
|
||||||
|
<img src={authImg} alt='img' />
|
||||||
|
<p>
|
||||||
|
Создавайте и редактируйте задачи и проекты вместе с другими участниками команды.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<img className='trackerRegistration__form__img' src={registrationImg} alt='img' />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{modalConfirmOpen &&
|
||||||
|
<ModalLayout active={modalConfirmOpen} setActive={setModalConfirm}>
|
||||||
|
<ModalTrackerRegistration setModalReset={setModalConfirm} />
|
||||||
|
</ModalLayout>
|
||||||
|
}
|
||||||
|
<Footer />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
95
src/pages/TrackerRegistration/trackerRegistration.scss
Normal file
95
src/pages/TrackerRegistration/trackerRegistration.scss
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
.trackerRegistration {
|
||||||
|
&__content {
|
||||||
|
font-family: "LabGrotesque", sans-serif;
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
color: #000000;
|
||||||
|
padding: 50px 0 0;
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
@media (max-width: 1375px) {
|
||||||
|
padding-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding-bottom: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__form {
|
||||||
|
position: relative;
|
||||||
|
border-radius: 12px;
|
||||||
|
background: #FFF;
|
||||||
|
padding: 59px 115px 70px 102px;
|
||||||
|
|
||||||
|
&__inputs {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
max-width: 650px;
|
||||||
|
row-gap: 25px;
|
||||||
|
column-gap: 44px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__submit {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 44px;
|
||||||
|
padding: 9px 39px;
|
||||||
|
background: #52B709;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #FFF;
|
||||||
|
border: none;
|
||||||
|
margin-right: 165px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
img {
|
||||||
|
margin-right: 31px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 22px;
|
||||||
|
color: #000;
|
||||||
|
max-width: 430px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__img {
|
||||||
|
position: absolute;
|
||||||
|
top: -100px;
|
||||||
|
right: 58px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&__inputContainer {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
row-gap: 15px;
|
||||||
|
max-width: 300px;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 44px;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
outline: none;
|
||||||
|
padding: 8px 12px 9px;
|
||||||
|
background-color: #EFF2F7;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: none;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user