Compare commits

..

3 Commits

Author SHA1 Message Date
Victor Batischev
db9a7b24c6 resume adaptive 2023-12-04 19:34:59 +03:00
Victor Batischev
cdf06c7984 fix mobile resolution 2023-12-04 19:28:40 +03:00
Victor Batischev
d4eba820e0 remove auth for dev 2023-12-04 18:36:02 +03:00
31 changed files with 88 additions and 495 deletions

View File

@ -1,7 +1,7 @@
{ {
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"homepage": "https://html.craft-group.xyz/", "homepage": "https://itguild.info/",
"dependencies": { "dependencies": {
"@ckeditor/ckeditor5-build-classic": "^38.0.1", "@ckeditor/ckeditor5-build-classic": "^38.0.1",
"@ckeditor/ckeditor5-react": "^6.0.0", "@ckeditor/ckeditor5-react": "^6.0.0",

View File

@ -8,8 +8,7 @@ import {
import { getNotification } from "@redux/outstaffingSlice"; import { getNotification } from "@redux/outstaffingSlice";
import AuthForPartners from "./pages/AuthForPartners/AuthForPartners"; import Auth from "./pages/Auth/Auth";
import AuthForDevelopers from "./pages/AuthForDevelopers/AuthForDevelopers";
import { TrackerIntro } from "./pages/TrackerIntro/TrackerIntro" import { TrackerIntro } from "./pages/TrackerIntro/TrackerIntro"
import { CompanyInfo } from "@pages/CompanyInfo/CompanyInfo"; import { CompanyInfo } from "@pages/CompanyInfo/CompanyInfo";
import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth"; import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
@ -54,16 +53,13 @@ import "./assets/global.scss";
import "./assets/fonts/stylesheet.css"; import "./assets/fonts/stylesheet.css";
import "bootstrap/dist/css/bootstrap.min.css"; import "bootstrap/dist/css/bootstrap.min.css";
const App = () => { const App = () => {
const notification = useSelector(getNotification) const notification = useSelector(getNotification)
return ( return (
<> <>
<Router> <Router>
<Routes> <Routes>
<Route exact path="/authdev" element={<AuthForDevelopers />} /> <Route exact path="/auth" element={<Auth />} />
<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="/tracker-registration" element={<TrackerRegistration />} />

View File

@ -13,10 +13,10 @@ export const AuthBlock = ({ title, description, img, resetModal }) => {
<p>{description}</p> <p>{description}</p>
</div> </div>
<form className="auth__form"> <form className="auth__form">
<label htmlFor="login">Ваш email *</label> <label htmlFor="login">Ваш e-mail</label>
<input id="login" type="text" name="username" placeholder="Email" /> <input id="login" type="text" name="username" placeholder="E-mail" />
<label htmlFor="password">Ваш пароль*</label> <label htmlFor="password">Ваш пароль</label>
<input <input
id="password" id="password"
type="password" type="password"
@ -24,13 +24,7 @@ export const AuthBlock = ({ title, description, img, resetModal }) => {
placeholder="Пароль" placeholder="Пароль"
/> />
<div className="auth__form__buttons"> <div className="auth__form__buttons">
<button <button onClick={(e) => e.preventDefault()}>Войти</button>
onClick={(e) => {
e.preventDefault();
}}
>
Войти
</button>
<span onClick={() => resetModal(true)}>Восстановить пароль</span> <span onClick={() => resetModal(true)}>Восстановить пароль</span>
</div> </div>
</form> </form>

View File

@ -63,7 +63,7 @@ export const AuthBox = ({ title }) => {
localStorage.setItem("role_status", res.status); localStorage.setItem("role_status", res.status);
localStorage.setItem( localStorage.setItem(
"access_token_expired_at", "access_token_expired_at",
res.access_token_expired_at, res.access_token_expired_at
); );
dispatch(auth(true)); dispatch(auth(true));
dispatch(setUserInfo(res)); dispatch(setUserInfo(res));
@ -79,14 +79,16 @@ export const AuthBox = ({ title }) => {
<h2 className="auth-box__header"> <h2 className="auth-box__header">
Вход <img src={authHead} alt="authImg" /> Вход <img src={authHead} alt="authImg" />
</h2> </h2>
<div className="auth-box__title"> {title && (
<span>{title}</span> <div className="auth-box__title">
</div> <span>{title}</span>
</div>
)}
<form ref={ref} className="auth-box__form"> <form ref={ref} className="auth-box__form">
<label htmlFor="login">Ваш email *</label> <label htmlFor="login">Ваш e-mail</label>
<input id="login" type="text" name="username" placeholder="Логин" /> <input id="login" type="text" name="username" placeholder="Логин" />
<label htmlFor="password">Ваш пароль*</label> <label htmlFor="password">Ваш пароль</label>
<div className="inputWrapper"> <div className="inputWrapper">
<input <input
id="password" id="password"

View File

@ -15,7 +15,8 @@
letter-spacing: normal; letter-spacing: normal;
line-height: 77.81px; line-height: 77.81px;
text-align: left; text-align: left;
margin-top: 164px; margin-top: 150px;
margin-bottom: 30px;
span { span {
color: #52b709; color: #52b709;
@ -88,12 +89,12 @@
letter-spacing: normal; letter-spacing: normal;
line-height: 19.2px; line-height: 19.2px;
text-align: left; text-align: left;
margin-bottom: 25px; margin-bottom: 10px;
color: #000000; color: #000000;
} }
.inputWrapper { .inputWrapper {
width: 366px; width: 100%;
position: relative; position: relative;
.eye { .eye {
@ -101,6 +102,10 @@
position: absolute; position: absolute;
right: 20px; right: 20px;
top: 15px; top: 15px;
@media (min-width: 576px) {
left: 330px;
}
} }
} }
@ -152,7 +157,6 @@
letter-spacing: normal; letter-spacing: normal;
line-height: 32px; line-height: 32px;
text-align: center; text-align: center;
border: 2px solid #6aaf5c;
margin-right: 1.5rem; margin-right: 1.5rem;
transition: 0.3s; transition: 0.3s;
@ -203,9 +207,13 @@
color: #000000; color: #000000;
font-size: 17px; font-size: 17px;
font-weight: 400; font-weight: 400;
margin-top: 45px; margin-top: 35px;
line-height: 32px; line-height: 32px;
@media (max-width: 700px) {
text-align: center;
}
span { span {
cursor: pointer; cursor: pointer;
color: #52b709; color: #52b709;

View File

@ -79,7 +79,7 @@ footer {
&__mail { &__mail {
display: flex; display: flex;
align-items: center; align-items: center;
column-gap: 13px; column-gap: 5px;
a { a {
font-weight: 400; font-weight: 400;

View File

@ -85,13 +85,13 @@ const Form = () => {
<div className="row"> <div className="row">
<div className="col-sm-12"> <div className="col-sm-12">
<form className="form" id="test"> <form className="form" id="test">
<label htmlFor="email">Емейл:</label> <label htmlFor="email">E-mail:</label>
<input <input
onChange={handleChange} onChange={handleChange}
id="email" id="email"
name="Email" name="Email"
type="email" type="email"
placeholder="Емейл" placeholder="E-mail"
value={data.email} value={data.email}
/> />

View File

@ -50,7 +50,7 @@ export const FreeDevelopers = () => {
<div className="free-dev__body"> <div className="free-dev__body">
<div className="free-dev__body-title"> <div className="free-dev__body-title">
<p>Описание опыта работы</p> <p>Опыт работы</p>
</div> </div>
<div className="free-dev__body-text"> <div className="free-dev__body-text">
@ -86,7 +86,7 @@ export const FreeDevelopers = () => {
</div> </div>
<div className="login"> <div className="login">
<h3>Для просмотра полного резюме разработчика авторизуйтесь</h3> <h3>Для просмотра полного резюме разработчика, авторизуйтесь</h3>
<BaseButton styles={"dev-code"}> <BaseButton styles={"dev-code"}>
<Link to={"/auth"}>Войти</Link> <Link to={"/auth"}>Войти</Link>
</BaseButton> </BaseButton>

View File

@ -1,9 +1,6 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { useSelector } from "react-redux";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { getRole } from "@redux/roleSlice";
import { useLogout } from "@hooks/useLogout"; import { useLogout } from "@hooks/useLogout";
import { Loader } from "@components/Common/Loader/Loader"; import { Loader } from "@components/Common/Loader/Loader";
@ -12,8 +9,6 @@ import "./logoutButton.scss";
export const LogoutButton = () => { export const LogoutButton = () => {
const [isLoggingOut, setIsLoggingOut] = useState(false); const [isLoggingOut, setIsLoggingOut] = useState(false);
const userRole = useSelector(getRole);
const navigate = useNavigate(); const navigate = useNavigate();
const { logout } = useLogout(); const { logout } = useLogout();
@ -24,7 +19,7 @@ export const LogoutButton = () => {
setIsLoggingOut(true); setIsLoggingOut(true);
logout(); logout();
setIsLoggingOut(false); setIsLoggingOut(false);
navigate(userRole === "ROLE_DEV" ? "/authdev" : "/auth"); navigate("/auth");
}} }}
> >
{isLoggingOut ? <Loader /> : "Выйти"} {isLoggingOut ? <Loader /> : "Выйти"}

View File

@ -10,7 +10,7 @@ export const ModalReset = ({ setModalReset }) => {
<h3 className="modalReset__title">Восстановление доступа</h3> <h3 className="modalReset__title">Восстановление доступа</h3>
<div className="modalReset__input"> <div className="modalReset__input">
<span>Укажите e-mail, для которого хотите восстановить пароль.</span> <span>Укажите e-mail, для которого хотите восстановить пароль.</span>
<input placeholder="email" /> <input placeholder="e-mail" />
</div> </div>
<button className="modalReset__submit">Восстановить</button> <button className="modalReset__submit">Восстановить</button>
<img <img

View File

@ -50,7 +50,7 @@ export const ModalResetPassword = ({ active, setActive }) => {
setInputsError((prevValue) => ({ ...prevValue, email: true })); setInputsError((prevValue) => ({ ...prevValue, email: true }));
return showNotification({ return showNotification({
show: true, show: true,
text: "Введите корректный email", text: "Введите корректный e-mail",
type: "error", type: "error",
}); });
} }
@ -127,7 +127,7 @@ export const ModalResetPassword = ({ active, setActive }) => {
<h3 className="resetPassword__title">Восстановление пароля</h3> <h3 className="resetPassword__title">Восстановление пароля</h3>
{!step ? ( {!step ? (
<div className="resetPassword__email"> <div className="resetPassword__email">
<h5>Введите email:</h5> <h5>Введите e-mail:</h5>
<input <input
type="email" type="email"
onChange={(e) => { onChange={(e) => {
@ -141,12 +141,12 @@ export const ModalResetPassword = ({ active, setActive }) => {
token: false, token: false,
}); });
}} }}
placeholder="Email" placeholder="E-mail"
value={inputsValue.email} value={inputsValue.email}
className={inputsError.email ? "error" : ""} className={inputsError.email ? "error" : ""}
/> />
{inputsError.email && ( {inputsError.email && (
<span className="warningText">Введите корректный email</span> <span className="warningText">Введите корректный e-mail</span>
)} )}
{loader ? ( {loader ? (
<Loader style={"green"} /> <Loader style={"green"} />

View File

@ -468,7 +468,7 @@ export const TrackerModal = ({
<div className="input-container invitePersonBlock__input"> <div className="input-container invitePersonBlock__input">
<input <input
className="name-project" className="name-project"
placeholder="email" placeholder="e-mail"
type="email" type="email"
/> />
</div> </div>

View File

@ -26,7 +26,7 @@ export const Navigation = () => {
}, },
{ {
path: "/calendar", path: "/calendar",
name: "Отчетность", name: "Отчеты",
}, },
{ {
path: "/tracker", path: "/tracker",

View File

@ -9,7 +9,7 @@
a { a {
color: #5b6871; color: #5b6871;
font-weight: 400; font-weight: 400;
font-size: 12px; font-size: 13px;
line-height: 16px; line-height: 16px;
transition: 0.3s all ease; transition: 0.3s all ease;
position: relative; position: relative;
@ -17,14 +17,6 @@
display: flex; display: flex;
align-items: center; align-items: center;
@media (max-width: 525px) {
font-size: 10px;
}
@media (max-width: 455px) {
font-size: 9px;
}
&:hover { &:hover {
text-decoration: none; text-decoration: none;
color: #000000; color: #000000;

View File

@ -89,7 +89,7 @@ export const ProfileCalendar = () => {
<ProfileBreadcrumbs <ProfileBreadcrumbs
links={[ links={[
{ name: "Главная", link: "/profile" }, { name: "Главная", link: "/profile" },
{ name: "Ваша отчетность", link: "/profile/calendar" }, { name: "Отчеты", link: "/profile/calendar" },
]} ]}
/> />
<h2 className="summary__title">Ваши отчеты</h2> <h2 className="summary__title">Ваши отчеты</h2>

View File

@ -78,7 +78,6 @@
margin: 0; margin: 0;
max-width: 220px; max-width: 220px;
overflow: hidden; overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }

View File

@ -3,7 +3,6 @@ import { useDispatch, useSelector } from "react-redux";
import { NavLink, useNavigate } from "react-router-dom"; import { NavLink, useNavigate } from "react-router-dom";
import { auth, getProfileInfo, setProfileInfo } from "@redux/outstaffingSlice"; import { auth, getProfileInfo, setProfileInfo } from "@redux/outstaffingSlice";
import { getRole } from "@redux/roleSlice";
import { apiRequest } from "@api/request"; import { apiRequest } from "@api/request";
@ -15,7 +14,6 @@ export const ProfileHeader = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const dispatch = useDispatch(); const dispatch = useDispatch();
const profileInfo = useSelector(getProfileInfo); const profileInfo = useSelector(getProfileInfo);
const userRole = useSelector(getRole);
const [user] = useState( const [user] = useState(
localStorage.getItem("role_status") === "18" ? "partner" : "developer", localStorage.getItem("role_status") === "18" ? "partner" : "developer",
); );
@ -43,7 +41,7 @@ export const ProfileHeader = () => {
localStorage.clear(); localStorage.clear();
dispatch(auth(false)); dispatch(auth(false));
setIsLoggingOut(false); setIsLoggingOut(false);
navigate(userRole === "ROLE_DEV" ? "/authdev" : "/auth"); navigate("/auth");
}; };
return ( return (

View File

@ -1,18 +1,16 @@
import { useDispatch, useSelector } from "react-redux"; import { useDispatch } from "react-redux";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { auth } from "../redux/outstaffingSlice"; import { auth } from "../redux/outstaffingSlice";
import { getRole } from "../redux/roleSlice";
export const useLogout = () => { export const useLogout = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const userRole = useSelector(getRole);
const navigate = useNavigate(); const navigate = useNavigate();
const logout = () => { const logout = () => {
localStorage.clear(); localStorage.clear();
dispatch(auth(false)); dispatch(auth(false));
navigate(userRole === "ROLE_DEV" ? "/authdev" : "/auth"); navigate("/auth");
}; };
return { logout }; return { logout };

View File

@ -18,10 +18,6 @@ code {
monospace; monospace;
} }
h1 {
}
.container { .container {
position: relative !important; position: relative !important;
} }

View File

@ -1,18 +1,15 @@
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import { useSelector } from "react-redux"; import { useSelector } from "react-redux";
import { Link, useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { selectAuth } from "@redux/outstaffingSlice"; import { selectAuth } from "@redux/outstaffingSlice";
import { scrollToForm } from "@utils/helper";
import { AuthBox } from "@components/AuthBox/AuthBox"; import { AuthBox } from "@components/AuthBox/AuthBox";
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 SliderWorkers from "@components/SliderWorkers/SliderWorkers"; import SliderWorkers from "@components/SliderWorkers/SliderWorkers";
import arrowBtn from "assets/icons/arrows/arrowRight.svg";
import arrow from "assets/icons/arrows/arrow__login_page.png"; import arrow from "assets/icons/arrows/arrow__login_page.png";
import text from "assets/images/Body_Text.png"; import text from "assets/images/Body_Text.png";
import vector from "assets/images/Vector_Smart_Object.png"; import vector from "assets/images/Vector_Smart_Object.png";
@ -20,9 +17,9 @@ import vectorBlack from "assets/images/Vector_Smart_Object_black.png";
import authImg from "assets/images/auth_img.png"; import authImg from "assets/images/auth_img.png";
import cross from "assets/images/cross.png"; import cross from "assets/images/cross.png";
import "./authForPartners.scss"; import "./auth.scss";
const AuthForPartners = () => { const Auth = () => {
const isAuth = useSelector(selectAuth); const isAuth = useSelector(selectAuth);
let navigate = useNavigate(); let navigate = useNavigate();
@ -46,28 +43,10 @@ const AuthForPartners = () => {
<img className="auth-partners__vector" src={vector} alt="" /> <img className="auth-partners__vector" src={vector} alt="" />
<img className="auth-partners__vector-black" src={vectorBlack} alt="" /> <img className="auth-partners__vector-black" src={vectorBlack} alt="" />
<div className="container"> <div className="container">
<div className="change-mode">
<div className="change-mode__arrow" onClick={() => scrollToForm()}>
<img src={arrowBtn}></img>
</div>
<div className="buttons">
<Link to={"/authdev"}>
<button className="change-mode__developersForPart">
Для разработчиков
</button>
</Link>
<Link to={"/auth"}>
<button className="change-mode__partnersForPart">
Для партнёров
</button>
</Link>
</div>
</div>
<div className="row"> <div className="row">
<div className="col-12 col-xl-6"> <div className="col-12 col-xl-6">
<div className="auth-partners__box"> <div className="auth-partners__box">
<AuthBox title="для партнёров" /> <AuthBox />
</div> </div>
</div> </div>
<div className="col-xl-2"> <div className="col-xl-2">
@ -90,7 +69,6 @@ const AuthForPartners = () => {
<img className="cross" src={cross} alt="" /> <img className="cross" src={cross} alt="" />
</div> </div>
<div> <div>
{/* <img className='auth-specialists} src={specialists} alt="" /> */}
<p className="auth-partners__specialists"> <p className="auth-partners__specialists">
300 Специалистов 300 Специалистов
</p> </p>
@ -121,4 +99,4 @@ const AuthForPartners = () => {
); );
}; };
export default AuthForPartners; export default Auth;

View File

@ -181,7 +181,7 @@
&__img-text { &__img-text {
position: absolute; position: absolute;
right: -68px; right: -68px;
bottom: -84px; bottom: 0px;
} }
@media (max-width: 575.98px) { @media (max-width: 575.98px) {

View File

@ -1,124 +0,0 @@
import React, { useEffect } from "react";
import { useSelector } from "react-redux";
import { Link, useNavigate } from "react-router-dom";
import { selectAuth } from "@redux/outstaffingSlice";
import { scrollToForm } from "@utils/helper";
import { AuthBox } from "@components/AuthBox/AuthBox";
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
import { Footer } from "@components/Common/Footer/Footer";
import SideBar from "@components/SideBar/SideBar";
import SliderWorkers from "@components/SliderWorkers/SliderWorkers";
import arrowBtn from "assets/icons/arrows/arrowRight.svg";
import arrow from "assets/icons/arrows/arrow__login_page.png";
import text from "assets/images/Body_Text.png";
import vector from "assets/images/Vector_Smart_Object.png";
import vectorBlack from "assets/images/Vector_Smart_Object_black.png";
import cross from "assets/images/cross.png";
import medium from "assets/images/medium_male_big.png";
import "./authForDevelopers.scss";
const AuthForDevelopers = () => {
const isAuth = useSelector(selectAuth);
let navigate = useNavigate();
const getToken = localStorage.getItem("auth_token");
useEffect(() => {
if (isAuth || getToken) {
navigate("/profile");
}
}, [getToken]);
return (
<section className="auth-developers">
<AuthHeader />
<SliderWorkers
title={"Свободные разработчики"}
titleInfo={"для Вашей команды"}
subTitle={true}
/>
<div className="auth-developers__background">
<img className="auth-developers__vector" src={vector} alt="" />
<img
className="auth-developers__vector-black"
src={vectorBlack}
alt="#"
/>
<div className="container">
{/* <div className="change-mode">
<div className="change-mode__arrow" onClick={() => scrollToForm()}>
<img src={arrowBtn}></img>
</div>
<div className="buttons">
<Link to={"/authdev"}>
<button className="change-mode__developersForDev">
Для разработчиков
</button>
</Link>
<Link to={"/auth"}>
<button className="change-mode__partnersForDev">
Для партнёров
</button>
</Link>
</div>
</div> */}
<div className="row">
<div className="col-12 col-xl-6">
<div className="auth-developers__box">
<AuthBox title="для разработчиков" />
</div>
</div>
<div className="col-xl-2">
<img className="auth-developers__arrow" src={arrow} alt="" />
</div>
<div className="col-12 col-xl-4">
<div className="auth-developers__info">
<div className="auth-developers__info-box">
<img src={medium} alt="" />
<h3>
Frontend разработчик,
<br /> Middle
</h3>
</div>
<div className="auth-developers__info-container">
<div className="auth-developers__info-img">
<div>
<img className="cross" src={cross} alt="" />
</div>
<div>
{/* <img className='auth-specialists} src={specialists} alt="" /> */}
<p className="auth-developers__specialists">
300 Специалистов
</p>
</div>
</div>
<ul className="auth-developers__info-list">
<li className="auth-developers__info-item">
Ruby on Rails
</li>
<li className="auth-developers__info-item">PHP</li>
<li className="auth-developers__info-item">Python</li>
<li className="auth-developers__info-item">Vue.js</li>
<li className="auth-developers__info-item">React. JS</li>
</ul>
</div>
<img className="auth-developers__img-text" src={text} alt="" />
</div>
</div>
</div>
<Footer />
</div>
</div>
<SideBar />
</section>
);
};
export default AuthForDevelopers;

View File

@ -1,240 +0,0 @@
.auth-developers {
font-family: "LabGrotesque", sans-serif;
overflow: hidden;
position: relative;
&__background {
background-color: #f1f1f1;
position: relative;
}
&__vector,
&__vector-black {
position: absolute;
}
&__vector {
top: -37px;
left: -285px;
}
&__vector-black {
top: 460px;
right: -224px;
@media (max-width: 1200px) {
top: 370px;
}
@media (max-width: 1024px) {
top: 180px;
}
}
&__arrow {
margin-top: 360px;
z-index: 99;
@media (max-width: 1200px) {
display: none;
}
}
@media (max-width: 575.98px) {
&__vector,
&__vector-black,
&__arrow {
display: none;
}
}
&__info {
background-color: #e1fccf;
margin-top: 70px;
max-width: 310px;
padding-top: 30px;
position: relative;
padding-bottom: 310px;
@media (max-width: 1200px) {
display: none;
}
}
&__info-box {
display: flex;
align-items: center;
}
@media (max-width: 575.98px) {
&__info {
max-width: 380px;
}
&__info-box {
flex-direction: column;
justify-content: center;
}
}
@media (max-width: 375.98px) {
&__info {
max-width: 340px;
}
}
&__info-box > img {
width: 165px;
height: 165px;
margin-left: -84px;
margin-right: 30px;
}
@media (max-width: 575.98px) {
&__info-box > img {
margin-left: 0px;
margin-right: 0px;
}
}
&__info-box > h3 {
font-family: "GT Eesti Pro Display";
font-size: 2em;
font-weight: 100;
font-style: normal;
letter-spacing: normal;
line-height: 36px;
text-align: left;
}
@media (max-width: 575.98px) {
&__info-box > h3 {
margin-top: 20px;
}
}
&__info-container {
display: flex;
position: relative;
}
&__info-img {
display: flex;
flex-direction: column;
text-align: center;
margin-top: 28px;
margin-left: -40px;
}
&__info-img > div > img {
margin-bottom: 100px;
}
&__specialists {
font-family: "GT Eesti Pro Display";
font-size: 1.8em;
font-weight: 100;
font-style: normal;
letter-spacing: normal;
line-height: 26.12px;
text-align: left;
transform: rotate(-90deg);
text-transform: uppercase;
}
&__info-list {
list-style: none;
margin-top: 110px;
position: absolute;
right: -70px;
}
@media (max-width: 575.98px) {
&__info-list {
left: 34px;
}
}
&__info-item {
color: #1f1f1f;
font-family: "GT Eesti Pro Display";
font-size: 4em;
font-weight: 700;
font-style: normal;
letter-spacing: normal;
line-height: 56.95px;
text-align: left;
text-decoration: underline;
text-transform: uppercase;
}
@media (max-width: 575.98px) {
&__info-item {
font-size: 2.6em;
}
}
&__img-text {
position: absolute;
right: -68px;
bottom: -84px;
}
@media (max-width: 575.98px) {
&__img-text {
right: 0px;
bottom: -40px;
}
}
////////////////////////////////////
&__auth-link {
display: block;
}
&__auth-link a {
display: block;
width: 100%;
height: 100%;
color: #fff;
}
@media (max-width: 766px) {
&__form-buttons {
flex-direction: column;
}
&__form-btn {
margin: 0;
margin-bottom: 1.5rem;
}
}
}
.change-mode {
&__partnersForDev {
background: #52b7098c;
color: #2d6505;
margin-left: -35px;
}
&__partnersForDev,
&__developersForDev {
width: 220px;
height: 50px;
border-radius: 44px;
font-size: 16px;
border: none;
}
&__developersForDev {
position: relative;
background: #406128;
color: white;
}
@media (max-width: 768px) {
&__partnersForDev {
margin: 15px 0 0 0;
}
}
}

View File

@ -88,11 +88,11 @@ export const PartnerSettings = () => {
<ProfileBreadcrumbs <ProfileBreadcrumbs
links={[ links={[
{ name: "Главная", link: "/profile" }, { name: "Главная", link: "/profile" },
{ name: "Настройка профиля", link: "/profile/settings" }, { name: "Настройки", link: "/profile/settings" },
]} ]}
/> />
<div className="partner-settings"> <div className="partner-settings">
<h2 className="infoPersonal__title">Настройки акаунта</h2> <h2 className="infoPersonal__title">Настройки профиля</h2>
<div className="partner-settings__body"> <div className="partner-settings__body">
<div className="partner-settings__login"> <div className="partner-settings__login">
<h3 className="settings__title">Вход в систему</h3> <h3 className="settings__title">Вход в систему</h3>

View File

@ -36,7 +36,7 @@ export const Profile = () => {
{ {
path: "profile/summary", path: "profile/summary",
img: summaryIcon, img: summaryIcon,
title: "Данные и резюме", title: "Резюме",
description: "Ваше резюме<br/><span>заполнено</span>", description: "Ваше резюме<br/><span>заполнено</span>",
}, },
{ {
@ -54,7 +54,7 @@ export const Profile = () => {
{ {
path: "profile/settings", path: "profile/settings",
img: settingIcon, img: settingIcon,
title: "Настройки аккаунта", title: "Настройки профиля",
description: "Перейдите чтобы начать<br/> редактирование", description: "Перейдите чтобы начать<br/> редактирование",
}, },
], ],
@ -87,7 +87,7 @@ export const Profile = () => {
{ {
path: "profile/settings", path: "profile/settings",
img: settingIcon, img: settingIcon,
title: "Настройки аккаунта", title: "Настройки профиля",
description: "Перейдите чтобы начать<br/> редактирование", description: "Перейдите чтобы начать<br/> редактирование",
}, },
], ],

View File

@ -25,7 +25,7 @@ export const ProfileCandidate = () => {
{ {
path: "profile/settings", path: "profile/settings",
img: settingIcon, img: settingIcon,
title: "Настройки аккаунта", title: "Настройки профиля",
description: "Перейдите чтобы начать редактирование", description: "Перейдите чтобы начать редактирование",
}, },
]); ]);

View File

@ -41,7 +41,7 @@ export const RegistrationForCandidate = () => {
</div> </div>
<form className="registrationCandidate__form"> <form className="registrationCandidate__form">
<div className="registrationCandidate__form__input"> <div className="registrationCandidate__form__input">
<label htmlFor="name">Ваше имя *</label> <label htmlFor="name">Ваше имя</label>
<input id="name" type="text" placeholder="Имя" /> <input id="name" type="text" placeholder="Имя" />
</div> </div>
<div className="registrationCandidate__form__input"> <div className="registrationCandidate__form__input">
@ -49,19 +49,19 @@ export const RegistrationForCandidate = () => {
<input id="summary" type="text" placeholder="Резюме" /> <input id="summary" type="text" placeholder="Резюме" />
</div> </div>
<div className="registrationCandidate__form__input"> <div className="registrationCandidate__form__input">
<label htmlFor="email">Ваш email *</label> <label htmlFor="email">Ваш e-mail</label>
<input id="email" type="text" placeholder="Email" /> <input id="email" type="text" placeholder="E-mail" />
</div> </div>
<div className="registrationCandidate__form__input"> <div className="registrationCandidate__form__input">
<label htmlFor="tg">Ваш телеграм*</label> <label htmlFor="tg">Ваш telegram</label>
<input id="tg" type="text" placeholder="Телеграм" /> <input id="tg" type="text" placeholder="Telegram" />
</div> </div>
<div className="registrationCandidate__form__input"> <div className="registrationCandidate__form__input">
<label htmlFor="password">Придумайте пароль*</label> <label htmlFor="password">Придумайте пароль</label>
<input id="password" type="text" placeholder="Пароль" /> <input id="password" type="text" placeholder="Пароль" />
</div> </div>
<div className="registrationCandidate__form__input"> <div className="registrationCandidate__form__input">
<label htmlFor="secondPassword">Повторите пароль*</label> <label htmlFor="secondPassword">Повторите пароль</label>
<input id="secondPassword" type="text" placeholder="Пароль" /> <input id="secondPassword" type="text" placeholder="Пароль" />
</div> </div>
<div className="registrationCandidate__form__submit"> <div className="registrationCandidate__form__submit">

View File

@ -59,7 +59,7 @@ export const Summary = () => {
<ProfileBreadcrumbs <ProfileBreadcrumbs
links={[ links={[
{ name: "Главная", link: "/profile" }, { name: "Главная", link: "/profile" },
{ name: "Данные и резюме", link: "/profile/summary" }, { name: "Резюме", link: "/profile/summary" },
]} ]}
/> />
<h2 className="summary__title"> <h2 className="summary__title">
@ -98,7 +98,7 @@ export const Summary = () => {
<div className="summary__skills skills__section"> <div className="summary__skills skills__section">
<div className="summary__sections__head"> <div className="summary__sections__head">
<h3>Основной стек</h3> <h3>Основной стек</h3>
<button>Редактировать раздел</button> <button>Редактировать</button>
</div> </div>
<div className="skills__section__items"> <div className="skills__section__items">
<div className="skills__section__items__wrapper"> <div className="skills__section__items__wrapper">
@ -117,7 +117,7 @@ export const Summary = () => {
<div className="summary__experience"> <div className="summary__experience">
<div className="experience__block"> <div className="experience__block">
<div className="summary__sections__head"> <div className="summary__sections__head">
<h3>Описание опыта работы</h3> <h3>Опыт работы</h3>
<button <button
className={editSummeryOpen ? "edit" : ""} className={editSummeryOpen ? "edit" : ""}
onClick={() => { onClick={() => {
@ -127,7 +127,7 @@ export const Summary = () => {
setEditSummeryOpen(!editSummeryOpen); setEditSummeryOpen(!editSummeryOpen);
}} }}
> >
{editSummeryOpen ? "Сохранить" : "Редактировать раздел"} {editSummeryOpen ? "Сохранить" : "Редактировать"}
</button> </button>
</div> </div>
{editSummeryOpen ? ( {editSummeryOpen ? (
@ -165,8 +165,8 @@ export const Summary = () => {
{openGit && ( {openGit && (
<div className="summary__sectionGit"> <div className="summary__sectionGit">
<div className="summary__sections__head"> <div className="summary__sections__head">
<h3>Страница портфолио кода разработчика</h3> <h3>Ваши репозитории</h3>
<button>Редактировать раздел</button> <button>Редактировать</button>
</div> </div>
<div className="summary__sectionGitItems"> <div className="summary__sectionGitItems">
{Boolean(gitInfo.length) && {Boolean(gitInfo.length) &&

View File

@ -110,14 +110,6 @@
font-size: 16px; font-size: 16px;
line-height: 32px; line-height: 32px;
position: relative; position: relative;
white-space: nowrap;
//@media (max-width: 915px) {
// max-width: 220px;
// overflow: hidden;
// white-space: nowrap;
// text-overflow: ellipsis;
//}
@media (max-width: 690px) { @media (max-width: 690px) {
font-size: 14px; font-size: 14px;
@ -128,13 +120,12 @@
@media (max-width: 550px) { @media (max-width: 550px) {
max-width: 200px; max-width: 200px;
overflow: hidden; overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
margin: 0; margin: 0;
} }
@media (max-width: 450px) { @media (max-width: 450px) {
max-width: 150px; max-width: 160px;
} }
&:after { &:after {
@ -170,6 +161,11 @@
width: 120px; width: 120px;
height: 50px; height: 50px;
} }
@media (max-width: 450px) {
width: 80px;
height: 40px;
}
} }
&__skills { &__skills {
@ -246,6 +242,11 @@
line-height: 32px; line-height: 32px;
white-space: nowrap; white-space: nowrap;
text-transform: uppercase; text-transform: uppercase;
@media (max-width: 550px) {
font-size: 14px;
line-height: 20px;
}
} }
} }
} }

View File

@ -31,19 +31,19 @@ export const TrackerRegistration = () => {
<div className="trackerRegistration__form"> <div className="trackerRegistration__form">
<div className="trackerRegistration__form__inputs"> <div className="trackerRegistration__form__inputs">
<div className="trackerRegistration__inputContainer"> <div className="trackerRegistration__inputContainer">
<span>Ваше имя *</span> <span>Ваше имя</span>
<input placeholder="Имя" /> <input placeholder="Имя" />
</div> </div>
<div className="trackerRegistration__inputContainer"> <div className="trackerRegistration__inputContainer">
<span>Ваш email *</span> <span>Ваш e-mail</span>
<input placeholder="Email" type="email" /> <input placeholder="E-mail" type="email" />
</div> </div>
<div className="trackerRegistration__inputContainer"> <div className="trackerRegistration__inputContainer">
<span>Придумайте пароль*</span> <span>Придумайте пароль</span>
<input placeholder="Пароль" /> <input placeholder="Пароль" />
</div> </div>
<div className="trackerRegistration__inputContainer"> <div className="trackerRegistration__inputContainer">
<span>Повторите пароль*</span> <span>Повторите пароль</span>
<input placeholder="Повторите пароль" /> <input placeholder="Повторите пароль" />
</div> </div>
</div> </div>

View File

@ -14,7 +14,7 @@ export function createMarkup(text) {
// `<div class='experience__block'> // `<div class='experience__block'>
// <div class="summary__sections__head"> // <div class="summary__sections__head">
// <h3>Описание опыта работы</h3> // <h3>Описание опыта работы</h3>
// <button>Редактировать раздел</button> // <button>Редактировать</button>
// </div> // </div>
// <div class="experience__content">${item.split("<h3>")[0]}</div> // <div class="experience__content">${item.split("<h3>")[0]}</div>
// </div>` // </div>`