Compare commits
No commits in common. "3013dd1bd25c542712499ca6ef97fda41fb6e84e" and "f180586eb36529b6ba080b236e305f5e6e794793" have entirely different histories.
3013dd1bd2
...
f180586eb3
904
package-lock.json
generated
904
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -982,7 +982,7 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
row-gap: 10px;
|
row-gap: 10px;
|
||||||
padding: 10px 20px 0px 20px;
|
padding: 10px 40px 0px 20px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
|
||||||
@ -1113,7 +1113,7 @@
|
|||||||
|
|
||||||
&-priority {
|
&-priority {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px 20px 0 20px;
|
padding: 10px 40px 0 20px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
.priority {
|
.priority {
|
||||||
@ -1173,7 +1173,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&-bottom {
|
&-bottom {
|
||||||
padding: 0px 30px 10px 20px;
|
padding: 0px 90px 10px 35px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
|
@ -286,15 +286,15 @@ export const ProfileCalendarComponent = React.memo(
|
|||||||
? `${getCorrectDate(startDate)} - ${getCorrectDate(endDate)}`
|
? `${getCorrectDate(startDate)} - ${getCorrectDate(endDate)}`
|
||||||
: `${getCorrectDate(endDate)} - ${getCorrectDate(startDate)}`
|
: `${getCorrectDate(endDate)} - ${getCorrectDate(startDate)}`
|
||||||
: activePeriod
|
: activePeriod
|
||||||
? "Выберите диапазон на календаре"
|
? "Выберите диапазон на календаре"
|
||||||
: "Выбрать диапазон"}
|
: "Выбрать диапазон"}
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
{totalRangeHours
|
{totalRangeHours
|
||||||
? `${totalRangeHours} ${hourOfNum(totalRangeHours)}`
|
? `${totalRangeHours} ${hourOfNum(totalRangeHours)}`
|
||||||
: endDate
|
: endDate
|
||||||
? "0 часов"
|
? "0 часов"
|
||||||
: ""}
|
: ""}
|
||||||
</span>
|
</span>
|
||||||
{endDate && (
|
{endDate && (
|
||||||
<BaseButton
|
<BaseButton
|
||||||
|
@ -143,6 +143,9 @@ export const ProfileHeader = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={active ? "auth-body active" : "auth-body"}>
|
<div className={active ? "auth-body active" : "auth-body"}>
|
||||||
|
{/* <div className="auth-body__title">
|
||||||
|
<img src={ITguild}></img>
|
||||||
|
</div> */}
|
||||||
<nav className="auth-body__navigation">
|
<nav className="auth-body__navigation">
|
||||||
<div className="profile-header__personal-info">
|
<div className="profile-header__personal-info">
|
||||||
<h3 className="profile-header__personal-info-name">
|
<h3 className="profile-header__personal-info-name">
|
||||||
|
@ -99,7 +99,7 @@ export const useFormValidation = (
|
|||||||
setLoader(false);
|
setLoader(false);
|
||||||
if ("errors" in data) {
|
if ("errors" in data) {
|
||||||
return showNotificationError(
|
return showNotificationError(
|
||||||
"Аккаунт с таким логином или email уже существует"
|
"Аккаунт с таким логином или email уже существуе"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!data.id) {
|
if (!data.id) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { useSelector } from "react-redux";
|
import { useSelector } from "react-redux";
|
||||||
import { Link } from "react-router-dom";
|
import { Link, Navigate } from "react-router-dom";
|
||||||
|
|
||||||
import { getPartnerEmployees } from "@redux/outstaffingSlice";
|
import { getPartnerEmployees } from "@redux/outstaffingSlice";
|
||||||
|
|
||||||
@ -16,7 +16,12 @@ import "./partnerEmployees.scss";
|
|||||||
|
|
||||||
export const PartnerEmployees = () => {
|
export const PartnerEmployees = () => {
|
||||||
const partnerEmployees = useSelector(getPartnerEmployees);
|
const partnerEmployees = useSelector(getPartnerEmployees);
|
||||||
|
// if (
|
||||||
|
// localStorage.getItem("role_status") !== "18" ||
|
||||||
|
// !partnerEmployees.length
|
||||||
|
// ) {
|
||||||
|
// return <Navigate to="/profile/categories" replace />;
|
||||||
|
// }
|
||||||
return (
|
return (
|
||||||
<div className="partner-employees">
|
<div className="partner-employees">
|
||||||
<ProfileHeader />
|
<ProfileHeader />
|
||||||
|
@ -265,7 +265,7 @@
|
|||||||
height: 46px;
|
height: 46px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
line-height: 20px;
|
line-height: 32px;
|
||||||
transition: 0.3s all ease;
|
transition: 0.3s all ease;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@ -280,7 +280,7 @@
|
|||||||
color: white;
|
color: white;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
margin-left: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
@ -139,6 +139,7 @@
|
|||||||
&__body {
|
&__body {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
justify-content: space-around;
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import { Navigation } from "@components/Navigation/Navigation";
|
|||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||||||
|
|
||||||
// import paymentIcon from "assets/icons/paymentIcon.png";
|
import paymentIcon from "assets/icons/paymentIcon.png";
|
||||||
import settingIcon from "assets/icons/settingIcon.png";
|
import settingIcon from "assets/icons/settingIcon.png";
|
||||||
import summaryIcon from "assets/icons/summaryIcon.png";
|
import summaryIcon from "assets/icons/summaryIcon.png";
|
||||||
import timerIcon from "assets/icons/timerIcon.png";
|
import timerIcon from "assets/icons/timerIcon.png";
|
||||||
@ -64,7 +64,7 @@ export const Profile = () => {
|
|||||||
img: reportsIcon,
|
img: reportsIcon,
|
||||||
title: "Мои вакансии",
|
title: "Мои вакансии",
|
||||||
description:
|
description:
|
||||||
"<span>Ваши открытые вакансии, которыми вы можете управлять"
|
"<span>У вас 2 вакансии<br/></span>открытые от лица компании"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "profile/employees",
|
path: "profile/employees",
|
||||||
@ -100,10 +100,17 @@ export const Profile = () => {
|
|||||||
<div className="container">
|
<div className="container">
|
||||||
<ProfileBreadcrumbs links={[{ name: "Главная", link: "/profile" }]} />
|
<ProfileBreadcrumbs links={[{ name: "Главная", link: "/profile" }]} />
|
||||||
<h2 className="profile__title">
|
<h2 className="profile__title">
|
||||||
<span>
|
{user === "developer" ? (
|
||||||
<p>Добрый день, </p>
|
<span>
|
||||||
{profileInfo?.fio || profileInfo?.username}
|
<p>Добрый день, </p>
|
||||||
</span>
|
{profileInfo?.fio || profileInfo?.username}
|
||||||
|
</span>
|
||||||
|
) : (
|
||||||
|
<span>
|
||||||
|
<p>Добрый день, </p>
|
||||||
|
{profileInfo?.fio || profileInfo?.username}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
</h2>
|
</h2>
|
||||||
<div className="summary__info">
|
<div className="summary__info">
|
||||||
<div className="summary__person">
|
<div className="summary__person">
|
||||||
@ -115,11 +122,14 @@ export const Profile = () => {
|
|||||||
alt="avatar"
|
alt="avatar"
|
||||||
/>
|
/>
|
||||||
<p className="summary__name">
|
<p className="summary__name">
|
||||||
<span>
|
{user === "developer" ? (
|
||||||
{profileInfo?.fio || profileInfo?.username},
|
<span>
|
||||||
{user === "developer" &&
|
{profileInfo?.fio || profileInfo?.username},{" "}
|
||||||
` ${profileInfo?.specification} разработчик`}
|
{profileInfo?.specification} разработчик
|
||||||
</span>
|
</span>
|
||||||
|
) : (
|
||||||
|
<span>{profileInfo?.fio || profileInfo?.username}</span>
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -11,6 +11,7 @@ import { Loader } from "@components/Common/Loader/Loader";
|
|||||||
import { Navigation } from "@components/Navigation/Navigation";
|
import { Navigation } from "@components/Navigation/Navigation";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||||||
|
// import { HeadBottom } from "@components/features/Candidate-lk/HeadBottom";
|
||||||
import { AlertResult } from "@components/features/quiz/AlertResult";
|
import { AlertResult } from "@components/features/quiz/AlertResult";
|
||||||
import { QuizReport } from "@components/features/quiz/QuizReport";
|
import { QuizReport } from "@components/features/quiz/QuizReport";
|
||||||
|
|
||||||
@ -40,6 +41,7 @@ export const QuizReportPage = () => {
|
|||||||
<div className="quiz-report-page">
|
<div className="quiz-report-page">
|
||||||
<ProfileHeader />
|
<ProfileHeader />
|
||||||
<Navigation />
|
<Navigation />
|
||||||
|
{/*<HeadBottom />*/}
|
||||||
<div className="quiz-report-page__container">
|
<div className="quiz-report-page__container">
|
||||||
<ProfileBreadcrumbs
|
<ProfileBreadcrumbs
|
||||||
links={[
|
links={[
|
||||||
|
@ -81,6 +81,7 @@ export const RegistrationForCandidate = () => {
|
|||||||
<img src={arrowBtn} alt="img" />
|
<img src={arrowBtn} alt="img" />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
{/* форма регистрации */}
|
||||||
<form
|
<form
|
||||||
className="registration-candidate__form"
|
className="registration-candidate__form"
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
|
@ -211,6 +211,8 @@ const Statistics = () => {
|
|||||||
<p className="person-type">
|
<p className="person-type">
|
||||||
{person.role ? person.role : "-"}
|
{person.role ? person.role : "-"}
|
||||||
</p>
|
</p>
|
||||||
|
{/* <span className="status status-active"> */}
|
||||||
|
|
||||||
<span
|
<span
|
||||||
className={
|
className={
|
||||||
person.status
|
person.status
|
||||||
|
47
src/pages/TrackerAuth/TrackerAuth.jsx
Normal file
47
src/pages/TrackerAuth/TrackerAuth.jsx
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import React, { useState } from "react";
|
||||||
|
|
||||||
|
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
||||||
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
|
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
||||||
|
import { ModalReset } from "@components/Modal/ModalReset/ModalReset";
|
||||||
|
import ModalResetPassword from "@components/Modal/ModalResetPassword/ModalResetPassword";
|
||||||
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
|
||||||
|
import arrowInfo from "assets/icons/trackerIntroInfo.svg";
|
||||||
|
import trackerAuthImg from "assets/images/trackerAuthImg.png";
|
||||||
|
|
||||||
|
import "./trackerAuth.scss";
|
||||||
|
|
||||||
|
export const TrackerAuth = () => {
|
||||||
|
const [modalResetOpen, setModalReset] = useState(false);
|
||||||
|
return (
|
||||||
|
<div className="tracker-auth">
|
||||||
|
<AuthHeader />
|
||||||
|
<SideBar />
|
||||||
|
<div className="tracker-auth__content">
|
||||||
|
<div className="container">
|
||||||
|
<h1 className="tracker-auth__title">
|
||||||
|
Войдите в свое{" "}
|
||||||
|
<span>
|
||||||
|
рабочее пространство
|
||||||
|
<img src={arrowInfo} alt="arrow" />
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
<AuthBlock
|
||||||
|
description="Создавайте и редактируйте задачи и проекты вместе с другими участниками команды."
|
||||||
|
img={trackerAuthImg}
|
||||||
|
resetModal={setModalReset}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<ModalResetPassword active={modalResetOpen} setActive={setModalReset} />
|
||||||
|
{/*{modalResetOpen && (*/}
|
||||||
|
{/* <ModalLayout active={modalResetOpen} setActive={setModalReset}>*/}
|
||||||
|
{/* <ModalReset setModalReset={setModalReset} />*/}
|
||||||
|
{/* </ModalLayout>*/}
|
||||||
|
{/*)}*/}
|
||||||
|
</div>
|
||||||
|
<Footer />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
58
src/pages/TrackerAuth/trackerAuth.scss
Normal file
58
src/pages/TrackerAuth/trackerAuth.scss
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.tracker-auth {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-height: 100vh;
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
|
||||||
|
&__content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1;
|
||||||
|
color: #000000;
|
||||||
|
padding: 50px 0 0;
|
||||||
|
|
||||||
|
@media (max-width: 1375px) {
|
||||||
|
padding-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1000px) {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding-bottom: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__title {
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 46px;
|
||||||
|
color: #000000;
|
||||||
|
span {
|
||||||
|
color: #52b709;
|
||||||
|
position: relative;
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
bottom: -15px;
|
||||||
|
right: 10px;
|
||||||
|
max-width: 300px;
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
max-width: 257px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 483px) {
|
||||||
|
max-width: 160px;
|
||||||
|
left: -175px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
font-size: 24px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -36,7 +36,7 @@ export const TrackerIntro = () => {
|
|||||||
компании в одном месте: проекты, задачи, цели, сотрудники,
|
компании в одном месте: проекты, задачи, цели, сотрудники,
|
||||||
документы, переписки, отчеты
|
документы, переписки, отчеты
|
||||||
</p>
|
</p>
|
||||||
<NavLink to="/auth" className="tracker-intro__btn">
|
<NavLink to="/tracker-auth" className="tracker-intro__btn">
|
||||||
Начать работу
|
Начать работу
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,6 +14,7 @@ import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
|
|||||||
import { RegistrationForCandidate } from "@pages/RegistrationForCandidate/RegistrationForCandidate";
|
import { RegistrationForCandidate } from "@pages/RegistrationForCandidate/RegistrationForCandidate";
|
||||||
import { RegistrationSetting } from "@pages/RegistrationSetting/RegistrationSetting";
|
import { RegistrationSetting } from "@pages/RegistrationSetting/RegistrationSetting";
|
||||||
import { SingleReportPage } from "@pages/SingleReportPage/SingleReportPage";
|
import { SingleReportPage } from "@pages/SingleReportPage/SingleReportPage";
|
||||||
|
import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
|
||||||
import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
|
import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
|
||||||
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
|
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
|
||||||
|
|
||||||
@ -25,6 +26,7 @@ export const GuestPage = () => {
|
|||||||
<Route exact path="/auth" element={<Auth />} />
|
<Route exact path="/auth" element={<Auth />} />
|
||||||
<Route path="*" element={<Navigate to="/auth" replace />} />
|
<Route path="*" element={<Navigate to="/auth" replace />} />
|
||||||
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
||||||
|
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
||||||
<Route exact path="/forms" element={<Forms />} />
|
<Route exact path="/forms" element={<Forms />} />
|
||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
|
Loading…
Reference in New Issue
Block a user