-
This commit is contained in:
Никита Губарь 2024-02-15 13:30:13 +03:00
commit 954f696044
79 changed files with 420 additions and 491 deletions

View File

@ -3,14 +3,14 @@ import {
BrowserRouter as Router, BrowserRouter as Router,
Route, Route,
Routes, Routes,
Navigate, Navigate
} from "react-router-dom"; } from "react-router-dom";
import { getNotification } from "@redux/outstaffingSlice"; import { getNotification } from "@redux/outstaffingSlice";
import Auth from "./pages/Auth/Auth"; import Auth from "./pages/Auth/Auth";
import CatalogSpecialists from "@pages/CatalogSpecialists/CatalogSpecialists"; import CatalogSpecialists from "@pages/CatalogSpecialists/CatalogSpecialists";
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";
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration"; import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
@ -57,7 +57,7 @@ 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>
@ -65,10 +65,22 @@ const App = () => {
<Route exact path="/auth" element={<Auth />} /> <Route exact path="/auth" element={<Auth />} />
<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 />}
/>
<Route exact path="/company" element={<CompanyInfo />} /> <Route exact path="/company" element={<CompanyInfo />} />
<Route exact path="/registration-setting" element={<RegistrationSetting />} /> <Route
<Route exact path="/catalog-specialists" element={<CatalogSpecialists />} /> exact
path="/registration-setting"
element={<RegistrationSetting />}
/>
<Route
exact
path="/catalog-specialists"
element={<CatalogSpecialists />}
/>
<Route exact path="/worker/:id" element={<FreeDevelopers />} /> <Route exact path="/worker/:id" element={<FreeDevelopers />} />
<Route <Route
@ -113,18 +125,26 @@ const App = () => {
<Route exact path="catalog" element={<Home />} /> <Route exact path="catalog" element={<Home />} />
<Route exact path="calendar" element={<ProfileCalendar />} /> <Route exact path="calendar" element={<ProfileCalendar />} />
<Route exact path="calendar/report" element={<ReportForm />} /> <Route exact path="calendar/report" element={<ReportForm />} />
<Route exact path="calendar/view/:date/:id" element={<ViewReport />} /> <Route
exact
path="calendar/view/:date/:id"
element={<ViewReport />}
/>
<Route exact path="summary" element={<Summary />} /> <Route exact path="summary" element={<Summary />} />
<Route exact path="tracker" element={<Tracker />} /> <Route exact path="tracker" element={<Tracker />} />
<Route exact path="statistics/:id" element={<Statistics/>}/> <Route exact path="statistics/:id" element={<Statistics />} />
<Route exact path="payouts" element={<Payouts />} /> <Route exact path="payouts" element={<Payouts />} />
<Route exact path="settings" element={<PartnerSettings />} /> <Route exact path="settings" element={<PartnerSettings />} />
<Route exact path="requests" element={<PartnerRequests />} /> <Route exact path="requests" element={<PartnerRequests />} />
<Route exact path="add-request" element={<PartnerAddRequest />} /> <Route exact path="requests-add" element={<PartnerAddRequest />} />
<Route exact path="edit-request" element={<PartnerAddRequest />} /> <Route exact path="requests-edit" element={<PartnerAddRequest />} />
<Route exact path="bid" element={<PartnerBid />} /> <Route exact path="requests-bid" element={<PartnerBid />} />
<Route exact path="employees" element={<PartnerCategories />} /> <Route exact path="employees" element={<PartnerCategories />} />
<Route exact path="employees/report/:uuid" element={<PartnerEmployeeReport />} /> <Route
exact
path="employees/report/:uuid"
element={<PartnerEmployeeReport />}
/>
<Route exact path="treaties" element={<PartnerTreaties />} /> <Route exact path="treaties" element={<PartnerTreaties />} />
<Route exact path="quiz"> <Route exact path="quiz">
<Route index element={<QuizPage />} /> <Route index element={<QuizPage />} />
@ -139,7 +159,6 @@ const App = () => {
/> />
</Route> </Route>
<Route exact path="profile-candidate/:id"> <Route exact path="profile-candidate/:id">
<Route index element={<ProfileCandidate />} /> <Route index element={<ProfileCandidate />} />
</Route> </Route>
@ -147,9 +166,7 @@ const App = () => {
<Route path="*" element={<Navigate to="/auth" replace />} /> <Route path="*" element={<Navigate to="/auth" replace />} />
</Routes> </Routes>
</Router> </Router>
{notification.show && {notification.show && <Notification />}
<Notification />
}
</> </>
); );
}; };

View File

@ -79,8 +79,8 @@ const Calendar = () => {
</p> </p>
</div> </div>
</div> </div>
<Footer />
</section> </section>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,6 +1,5 @@
.calendar { .calendar {
margin-bottom: 40px; margin-bottom: 40px;
font-family: "LabGrotesque", sans-serif;
&__header { &__header {
display: flex; display: flex;
@ -136,10 +135,6 @@
line-height: normal; line-height: normal;
} }
} }
footer {
margin-top: 2rem !important;
}
} }
@media (max-width: 575.98px) { @media (max-width: 575.98px) {

View File

@ -3,7 +3,6 @@
margin: 10px 0; margin: 10px 0;
background-color: #f9f9f9; background-color: #f9f9f9;
padding: 20px 30px; padding: 20px 30px;
font-family: "LabGrotesque", sans-serif;
&__header { &__header {
display: flex; display: flex;

View File

@ -233,8 +233,8 @@ const Candidate = () => {
)} )}
</div> </div>
</div> </div>
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -148,12 +148,6 @@
} }
} }
} }
footer {
margin-top: 2.5rem !important;
position: relative;
z-index: -2;
}
} }
@media (max-width: 375.98px) { @media (max-width: 375.98px) {

View File

@ -6,7 +6,6 @@
border-radius: 44px; border-radius: 44px;
color: white; color: white;
font-style: normal; font-style: normal;
font-family: "LabGrotesque", sans-serif;
border: none; border: none;
transition: 0.5s; transition: 0.5s;

View File

@ -8,7 +8,7 @@ export const Loader = ({ width = 50, height = 50, style }) => {
<div className="loader"> <div className="loader">
<SVGLoader <SVGLoader
type="Circles" type="Circles"
color={style ? style : `#fff`} color={style ? style : `green`}
height={height} height={height}
width={width} width={width}
/> />

View File

@ -5,7 +5,6 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
position: relative; position: relative;
//&:hover { //&:hover {
// path { // path {
// fill: #6aaf5c; // fill: #6aaf5c;

View File

@ -18,7 +18,6 @@
} }
&__empty { &__empty {
font-family: "LabGrotesque", sans-serif;
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
font-size: 16px; font-size: 16px;

View File

@ -92,8 +92,8 @@ export const FreeDevelopers = () => {
</BaseButton> </BaseButton>
</div> </div>
</div> </div>
<Footer />
</div> </div>
<Footer />
</section> </section>
); );
}; };

View File

@ -1,5 +1,4 @@
.free-dev { .free-dev {
font-family: "LabGrotesque", sans-serif;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
background-color: #f1f1f1; background-color: #f1f1f1;

View File

@ -77,7 +77,6 @@
line-height: 32px; line-height: 32px;
color: #1458dd; color: #1458dd;
margin: 0; margin: 0;
font-family: "LabGrotesque", sans-serif;
} }
h2 { h2 {
@ -780,7 +779,6 @@
.react-datepicker__current-month { .react-datepicker__current-month {
font-size: 18px; font-size: 18px;
font-family: "LabGrotesque", sans-serif;
text-transform: capitalize; text-transform: capitalize;
} }
@ -823,7 +821,6 @@
.react-datepicker__day { .react-datepicker__day {
font-size: 16px; font-size: 16px;
width: 35px; width: 35px;
font-family: "LabGrotesque", sans-serif;
border-radius: 50px; border-radius: 50px;
padding: 7px; padding: 7px;
} }
@ -832,7 +829,6 @@
font-size: 18px; font-size: 18px;
width: 35px; width: 35px;
font-weight: 500; font-weight: 500;
font-family: "LabGrotesque", sans-serif;
} }
.react-datepicker__triangle { .react-datepicker__triangle {

View File

@ -30,6 +30,7 @@ import { useNotification } from "@hooks/useNotification";
import { getCorrectDate } from "@components/Calendar/calendarHelper"; import { getCorrectDate } from "@components/Calendar/calendarHelper";
import BaseButton from "@components/Common/BaseButton/BaseButton"; import BaseButton from "@components/Common/BaseButton/BaseButton";
import { Loader } from "@components/Common/Loader/Loader";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout"; import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import arrowRight from "assets/icons/arrows/arrowRightCreateTask.svg"; import arrowRight from "assets/icons/arrows/arrowRightCreateTask.svg";
@ -90,6 +91,7 @@ export const TrackerModal = ({
const [deadLineDate, setDeadLineDate] = useState(""); const [deadLineDate, setDeadLineDate] = useState("");
const [datePickerOpen, setDatePickerOpen] = useState(false); const [datePickerOpen, setDatePickerOpen] = useState(false);
const [startDate, setStartDate] = useState(new Date()); const [startDate, setStartDate] = useState(new Date());
const [loader, setLoader] = useState(false);
const priority = [ const priority = [
{ {
@ -138,6 +140,8 @@ export const TrackerModal = ({
return; return;
} }
setLoader(true);
apiRequest("/task/create-task", { apiRequest("/task/create-task", {
method: "POST", method: "POST",
data: { data: {
@ -158,6 +162,7 @@ export const TrackerModal = ({
text: "Задача с таким именем уже существует", text: "Задача с таким именем уже существует",
type: "error" type: "error"
}); });
setLoader(false);
} else { } else {
for (let i = 0; i < taskTags.length; i++) { for (let i = 0; i < taskTags.length; i++) {
apiRequest("/mark/attach", { apiRequest("/mark/attach", {
@ -185,9 +190,11 @@ export const TrackerModal = ({
setDescriptionTicket(""); setDescriptionTicket("");
setSelectedExecutorTask("Выберите исполнителя"); setSelectedExecutorTask("Выберите исполнителя");
setSelectedPriority(null); setSelectedPriority(null);
setLoader(false);
}); });
} else { } else {
setActive(false); setActive(false);
setLoader(false);
setValueTicket(""); setValueTicket("");
setDescriptionTicket(""); setDescriptionTicket("");
dispatch(setProjectBoardFetch(projectBoard.id)); dispatch(setProjectBoardFetch(projectBoard.id));
@ -703,9 +710,13 @@ export const TrackerModal = ({
</div> </div>
</div> </div>
</div> </div>
{loader ? (
<Loader style={"green"} />
) : (
<BaseButton styles={"button-add"} onClick={createTicket}> <BaseButton styles={"button-add"} onClick={createTicket}>
Создать Создать
</BaseButton> </BaseButton>
)}
</div> </div>
</> </>
)} )}

View File

@ -172,7 +172,8 @@
.executor { .executor {
display: flex; display: flex;
justify-content: space-between; column-gap: 5px;
align-items: center;
&:hover { &:hover {
font-weight: 600; font-weight: 600;
} }
@ -650,7 +651,6 @@
.react-datepicker__current-month { .react-datepicker__current-month {
font-size: 18px; font-size: 18px;
font-family: "LabGrotesque", sans-serif;
text-transform: capitalize; text-transform: capitalize;
padding-bottom: 8px; padding-bottom: 8px;
} }
@ -694,7 +694,6 @@
.react-datepicker__day { .react-datepicker__day {
font-size: 16px; font-size: 16px;
width: 35px; width: 35px;
font-family: "LabGrotesque", sans-serif;
border-radius: 50px; border-radius: 50px;
padding: 7px; padding: 7px;
} }
@ -703,7 +702,6 @@
font-size: 18px; font-size: 18px;
width: 35px; width: 35px;
font-weight: 500; font-weight: 500;
font-family: "LabGrotesque", sans-serif;
} }
.react-datepicker__triangle { .react-datepicker__triangle {

View File

@ -45,6 +45,7 @@ export const Navigation = () => {
partner: [ partner: [
{ {
path: "/catalog", path: "/catalog",
active: "candidate",
name: "Каталог" name: "Каталог"
}, },
{ {
@ -53,6 +54,7 @@ export const Navigation = () => {
}, },
{ {
path: "/employees", path: "/employees",
active: "calendar",
name: "Персонал" name: "Персонал"
}, },
{ {
@ -80,7 +82,12 @@ export const Navigation = () => {
key={index} key={index}
end end
to={link.path === "/Quiz" ? link.path : `/profile${link.path}`} to={link.path === "/Quiz" ? link.path : `/profile${link.path}`}
className={currentPath.includes(link.path) ? "active" : ""} className={
currentPath.includes(link.path) ||
currentPath.includes(link.active)
? "active"
: ""
}
> >
{link.name} {link.name}
</NavLink> </NavLink>

View File

@ -5,7 +5,7 @@
position: fixed; position: fixed;
bottom: 25px; bottom: 25px;
right: 25px; right: 25px;
z-index: 20; z-index: 10000;
&__info { &__info {
display: flex; display: flex;

View File

@ -1,7 +1,3 @@
body {
font-family: "LabGrotesque", sans-serif !important;
}
.container { .container {
max-width: 1160px !important; max-width: 1160px !important;
} }
@ -9,7 +5,6 @@ body {
background: #f1f1f1; background: #f1f1f1;
height: 100%; height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
padding-top: 23px; padding-top: 23px;
&__title { &__title {

View File

@ -1,12 +1,15 @@
.profile__calendar { .profile__calendar {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
max-width: 1160px; max-width: 1160px;
margin-top: 23px; margin-top: 23px;
display: flex;
flex-direction: column;
flex: 1;
@media (max-width: 570px) { @media (max-width: 570px) {
margin-top: 0; margin-top: 0;

View File

@ -3,6 +3,8 @@
height: 80px; height: 80px;
background: #e1fccf; background: #e1fccf;
padding: 20px; padding: 20px;
display: flex;
flex-direction: column;
&__head { &__head {
background: #e1fccf; background: #e1fccf;

View File

@ -135,7 +135,7 @@ export const ProjectTicket = ({ project, index }) => {
<img src={edit}></img> <img src={edit}></img>
<p>редактировать</p> <p>редактировать</p>
</div> </div>
<div onClick={copyProjectLink(project.id)}> <div onClick={() => copyProjectLink(project.id)}>
<img src={link}></img> <img src={link}></img>
<p>скопировать ссылку</p> <p>скопировать ссылку</p>
</div> </div>

View File

@ -1,8 +1,6 @@
.report-form { .report-form {
background: #f1f1f1; background: #f1f1f1;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
max-width: 1160px; max-width: 1160px;
@ -430,7 +428,6 @@
.react-datepicker__current-month { .react-datepicker__current-month {
font-size: 14px; font-size: 14px;
font-family: "LabGrotesque", sans-serif;
text-transform: capitalize; text-transform: capitalize;
} }
@ -442,13 +439,11 @@
.react-datepicker__day { .react-datepicker__day {
font-size: 14px; font-size: 14px;
width: 35px; width: 35px;
font-family: "LabGrotesque", sans-serif;
} }
.react-datepicker__day-name { .react-datepicker__day-name {
font-size: 14px; font-size: 14px;
width: 35px; width: 35px;
font-family: "LabGrotesque", sans-serif;
} }
.react-datepicker__triangle { .react-datepicker__triangle {

View File

@ -6,15 +6,13 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
box-sizing: border-box; box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', font-family: "LabGrotesque", sans-serif !important;
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
code { code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
monospace; monospace;
} }

View File

@ -91,10 +91,10 @@ const Auth = () => {
</div> </div>
</div> </div>
</div> </div>
<Footer />
</div> </div>
</div> </div>
<SideBar /> <SideBar />
<Footer />
</section> </section>
); );
}; };

View File

@ -1,10 +1,10 @@
.auth-partners { .auth-partners {
font-family: "LabGrotesque", sans-serif; background-color: #f1f1f1;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
&__background { &__background {
background-color: #f1f1f1;
position: relative; position: relative;
} }

View File

@ -115,7 +115,7 @@ export const AuthForCandidate = () => {
resetModal={setModalReset} resetModal={setModalReset}
title="Войти, если есть доступ" title="Войти, если есть доступ"
description="Если вы получили доступ, пройдя description="Если вы получили доступ, пройдя
2 шага для входа или хотите узнать 2 шага для входа, или хотите узнать
свои результаты в кабинете" свои результаты в кабинете"
/> />
<div className="auth-candidate__start"> <div className="auth-candidate__start">

View File

@ -1,5 +1,4 @@
.auth-candidate { .auth-candidate {
font-family: "LabGrotesque", sans-serif;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
background-color: #f1f1f1; background-color: #f1f1f1;
@ -62,8 +61,4 @@
} }
} }
} }
footer {
margin-top: 10px;
}
} }

View File

@ -90,12 +90,10 @@ export const Blog = () => {
); );
})} })}
</div> </div>
<div className="blog__load-more"> <div className="blog__load-more">
<button>Загрузить еще</button> <button>Загрузить еще</button>
</div> </div>
</div> </div>
<Footer /> <Footer />
</div> </div>
); );

View File

@ -200,9 +200,9 @@ const CatalogSpecialists = () => {
); );
})} })}
</div> </div>
<Footer />
</div> </div>
<SideBar /> <SideBar />
<Footer />
</section> </section>
); );
}; };

View File

@ -1,8 +1,8 @@
.catalog-specialists { .catalog-specialists {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
&__wrapper { &__wrapper {
padding-top: 24px; padding-top: 24px;

View File

@ -103,8 +103,8 @@ export const CompanyInfo = () => {
</div> </div>
</div> </div>
</div> </div>
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,6 +1,5 @@
.company-info { .company-info {
&__content { &__content {
font-family: "LabGrotesque", sans-serif;
background-color: #f1f1f1; background-color: #f1f1f1;
padding-top: 60px; padding-top: 60px;

View File

@ -96,8 +96,8 @@ const FormPage = () => {
</div> </div>
</div> </div>
</div> </div>
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -124,10 +124,6 @@
right: 2.5rem; right: 2.5rem;
} }
.form-page footer {
margin-top: 6rem !important;
}
@media (max-width: 991px) { @media (max-width: 991px) {
.form-page { .form-page {
&__separator { &__separator {

View File

@ -2,9 +2,7 @@
.frequently-asked-question { .frequently-asked-question {
background: #f5f5f5; background: #f5f5f5;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@ -1,8 +1,6 @@
.frequently-asked-questions { .frequently-asked-questions {
background: #f5f5f5; background: #f5f5f5;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@ -69,9 +69,9 @@ const Home = () => {
<h2 className="catalog__title">Каталог специалистов</h2> <h2 className="catalog__title">Каталог специалистов</h2>
<Outstaffing /> <Outstaffing />
<Description onLoadMore={loadMore} isLoadingMore={isLoadingMore} /> <Description onLoadMore={loadMore} isLoadingMore={isLoadingMore} />
</div>
</div>
<Footer /> <Footer />
</div>
</div>
</> </>
); );
}; };

View File

@ -49,13 +49,14 @@ export const PartnerAddRequest = () => {
const [inputs, setInputs] = useState({ title: "", description: "" }); const [inputs, setInputs] = useState({ title: "", description: "" });
if ( if (
currentUrl[0] === "/profile/edit-request" && currentUrl[0] === "/profile/requests-edit" &&
!Object.keys(partnerRequestInfo).length !Object.keys(partnerRequestInfo).length
) { ) {
return <Navigate to="/profile/requests" replace />; return <Navigate to="/profile/requests" replace />;
} }
useEffect(() => { useEffect(() => {
initListeners();
apiRequest(`/profile/positions-list`).then((el) => apiRequest(`/profile/positions-list`).then((el) =>
setSpecializationList(el) setSpecializationList(el)
); );
@ -68,7 +69,7 @@ export const PartnerAddRequest = () => {
useEffect(() => { useEffect(() => {
if ( if (
currentUrl[0] === "/profile/edit-request" && currentUrl[0] === "/profile/requests-edit" &&
Object.keys(partnerRequestInfo).length Object.keys(partnerRequestInfo).length
) { ) {
setInputs({ setInputs({
@ -101,7 +102,7 @@ export const PartnerAddRequest = () => {
}; };
const handler = () => { const handler = () => {
if (currentUrl[0] === "/profile/edit-request") { if (currentUrl[0] === "/profile/requests-edit") {
apiRequest("/request/update-request", { apiRequest("/request/update-request", {
method: "PUT", method: "PUT",
data: { data: {
@ -141,6 +142,31 @@ export const PartnerAddRequest = () => {
} }
}; };
const initListeners = () => {
document.addEventListener("click", closeByClickingOut);
};
const closeByClickingOut = (event) => {
const path = event.path || (event.composedPath && event.composedPath());
if (
event &&
!path.find(
(div) =>
div.classList &&
(div.classList.contains("form__block__section__selects") ||
div.classList.contains("form__block__dropDown") ||
div.classList.contains("form__block__skills") ||
div.classList.contains("form__block__section__select"))
)
) {
setOpenSkillsSelect(false);
setOpenSpecializationListOpen(false);
setOpenLevelList(false);
setOpenCountList(false);
}
};
return ( return (
<div className="partner-add-request"> <div className="partner-add-request">
<ProfileHeader /> <ProfileHeader />
@ -154,7 +180,7 @@ export const PartnerAddRequest = () => {
name: `${ name: `${
editRequest ? "Редактирование заявки" : "Создание новой заявки" editRequest ? "Редактирование заявки" : "Создание новой заявки"
}`, }`,
link: "/profile/add-request" link: "/profile/requests-add"
} }
]} ]}
/> />

View File

@ -1,8 +1,8 @@
.partner-add-request { .partner-add-request {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
max-width: 1160px; max-width: 1160px;
@ -314,10 +314,6 @@
} }
} }
footer {
margin-top: 70px;
}
&__info { &__info {
background: #ffffff; background: #ffffff;
border-radius: 12px; border-radius: 12px;

View File

@ -107,7 +107,10 @@ export const PartnerBid = () => {
links={[ links={[
{ name: "Главная", link: "/profile" }, { name: "Главная", link: "/profile" },
{ name: "Запросы и открытые позиции", link: "/profile/requests" }, { name: "Запросы и открытые позиции", link: "/profile/requests" },
{ name: "Просмотр заявки - PHP разработчик", link: "/profile/bid" } {
name: "Просмотр заявки - PHP разработчик",
link: "/profile/requests-bid"
}
]} ]}
/> />
<h2 className="partner-bid__title">Страница заявки </h2> <h2 className="partner-bid__title">Страница заявки </h2>
@ -117,7 +120,7 @@ export const PartnerBid = () => {
<div className="partner-bid__qualification"> <div className="partner-bid__qualification">
<h3>{requestInfo.title}</h3> <h3>{requestInfo.title}</h3>
<div className="partner-bid__qualification__buttons"> <div className="partner-bid__qualification__buttons">
<Link to="/profile/edit-request">Редактировать</Link> <Link to="/profile/requests-edit">Редактировать</Link>
<img <img
src={deleteBtn} src={deleteBtn}
alt="delete" alt="delete"

View File

@ -1,11 +1,13 @@
.partner-bid { .partner-bid {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {
@ -536,8 +538,4 @@
background: #52b709; background: #52b709;
} }
} }
footer {
margin-top: 70px;
}
} }

View File

@ -1,10 +1,13 @@
.employee-report { .employee-report {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
} }

View File

@ -1,8 +1,8 @@
.partner-employees { .partner-employees {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
&__title { &__title {
color: #000000; color: #000000;
@ -167,15 +167,13 @@
} }
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {
margin-top: 0; margin-top: 0;
} }
} }
footer {
margin-top: 70px;
}
} }

View File

@ -60,7 +60,7 @@ export const PartnerRequests = () => {
return ( return (
<Link <Link
key={index} key={index}
to={"/profile/bid"} to={"/profile/requests-bid"}
className="partner-requests__section__item" className="partner-requests__section__item"
onClick={() => { onClick={() => {
dispatch(setPartnerRequestId(item.id)); dispatch(setPartnerRequestId(item.id));
@ -85,7 +85,7 @@ export const PartnerRequests = () => {
параметры: количество сотрудников, стек, уровень специалиста параметры: количество сотрудников, стек, уровень специалиста
</p> </p>
<BaseButton> <BaseButton>
<Link to={"/profile/add-request"}> <Link to={"/profile/requests-add"}>
<span>+</span> <span>+</span>
Создать запрос Создать запрос
</Link> </Link>
@ -100,7 +100,7 @@ export const PartnerRequests = () => {
<img src={cursorImg} alt="cursor" /> <img src={cursorImg} alt="cursor" />
<p>У вас ещё нет запросов на сотрудников</p> <p>У вас ещё нет запросов на сотрудников</p>
<BaseButton> <BaseButton>
<Link to={"/profile/add-request"}> <Link to={"/profile/requests-add"}>
<span>+</span> <span>+</span>
Создать запрос Создать запрос
</Link> </Link>

View File

@ -1,11 +1,13 @@
.partner-requests { .partner-requests {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {
@ -352,8 +354,4 @@
} }
} }
} }
footer {
margin-top: 70px;
}
} }

View File

@ -1,8 +1,8 @@
.settings { .settings {
background: #f1f1f1; display: flex;
height: 100%; flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif; background: #f1f1f1;
.info-personal__title { .info-personal__title {
color: #000000; color: #000000;
@ -12,7 +12,9 @@
} }
&__page { &__page {
min-height: 750px; display: flex;
flex-direction: column;
flex: 1;
max-width: 1160px !important; max-width: 1160px !important;
margin-top: 23px; margin-top: 23px;
} }
@ -129,7 +131,10 @@
} }
.partner-settings { .partner-settings {
margin-bottom: 110px; display: flex;
flex-direction: column;
flex: 1;
margin-bottom: 10px;
&__body { &__body {
display: flex; display: flex;

View File

@ -1,8 +1,8 @@
.treaties { .treaties {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
&__title { &__title {
font-weight: 700; font-weight: 700;
@ -378,15 +378,13 @@
} }
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {
margin-top: 0; margin-top: 0;
} }
} }
footer {
margin-top: 70px;
}
} }

View File

@ -1,8 +1,8 @@
.partner-categories { .partner-categories {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
&__title { &__title {
color: #000000; color: #000000;
@ -144,15 +144,13 @@
} }
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {
margin-top: 0; margin-top: 0;
} }
} }
footer {
margin-top: 70px;
}
} }

View File

@ -2,12 +2,15 @@ import React from "react";
import { Navigation } from "@components/Navigation/Navigation"; import { Navigation } from "@components/Navigation/Navigation";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader"; import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { Footer } from "@components/common/Footer/Footer";
export const Payouts = () => { export const Payouts = () => {
return ( return (
<div className="payouts"> <div className="payouts">
<ProfileHeader /> <ProfileHeader />
<Navigation /> <Navigation />
<div className="container"></div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,8 +1,8 @@
.profile { .profile {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
&__title { &__title {
font-weight: 700; font-weight: 700;
@ -48,92 +48,17 @@
@media (max-width: 1175px) { @media (max-width: 1175px) {
justify-content: center; justify-content: center;
} }
// .item {
// max-width: 353px;
// width: 100%;
// padding: 35px 45px 15px 30px;
// background: #FFFFFF;
// border-radius: 12px;
// text-decoration: none;
// cursor: pointer;
// transition: all 0.3s ease;
// &:hover {
// box-shadow: 6px 5px 20px rgb(87 98 80 / 21%);
// transform: scale(1.02);
// }
// @media (max-width: 1175px) {
// width: 48%;
// max-width: none;
// }
// @media (max-width: 925px) {
// width: 100%;
// padding: 15px 25px;
// }
// &__about {
// display: flex;
// column-gap: 20px;
// align-items: center;
// margin-bottom: 30px;
// @media (max-width: 925px) {
// margin-bottom: 15px;
// }
// h3 {
// color: #000000;
// font-weight: 500;
// font-size: 18px;
// line-height: 22px;
// max-width: 125px;
// margin-bottom: 0;
// }
// }
// &__info {
// display: flex;
// justify-content: space-between;
// align-items: center;
// p {
// font-weight: 700;
// font-size: 12px;
// line-height: 20px;
// color: #000000;
// margin-bottom: 0;
// span {
// color: #52B709;
// font-weight: 700;
// }
// }
// &Link {
// width: 48px;
// height: 48px;
// background: #DDEEC6;
// border-radius: 50px;
// display: flex;
// justify-content: center;
// align-items: center;
// }
// }
// }
} }
.container { .container {
max-width: 1160px; max-width: 1160px;
margin-top: 23px; margin-top: 23px;
display: flex;
flex-direction: column;
flex: 1;
@media (max-width: 570px) { @media (max-width: 570px) {
margin-top: 0; margin-top: 0;
} }
} }
footer {
margin-top: 70px;
}
} }

View File

@ -1,21 +1,19 @@
.profile-candidate{ .profile-candidate {
background: #F1F1F1; background: #f1f1f1;
height: 100%; display: flex;
min-height: 100vh; flex-direction: column;
font-family: "LabGrotesque", sans-serif; min-height: 100vh;
&__container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
//max-width: 1200px;
&__container{
max-width: 1160px;
margin: 0 auto 42px auto; margin: 0 auto 42px auto;
flex: 1 1 auto; flex: 1 1 auto;
padding: 0 15px; padding: 0 15px;
} }
&__title{ &__title {
margin: 0 0 31px 0; margin: 0 0 31px 0;
} }
&__row{ &__row {
display: flex; display: flex;
gap: 30px; gap: 30px;
flex-wrap: wrap; flex-wrap: wrap;
@ -23,14 +21,14 @@
// &__column{ // &__column{
// flex: 1 1 60%; // flex: 1 1 60%;
// } // }
&__tests{ &__tests {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
flex: 1 1 60%; flex: 1 1 60%;
gap: 30px; gap: 30px;
} }
&__cards{ &__cards {
display: flex; display: flex;
gap: 29px; gap: 29px;
width: 100%; width: 100%;
@ -38,20 +36,17 @@
flex-wrap: wrap; flex-wrap: wrap;
} }
} }
&__head-bottom{ &__head-bottom {
margin: 0 0 27px 0; margin: 0 0 27px 0;
//max-width: 1160px; //max-width: 1160px;
} }
} }
.instructions-candidate {
.instructions-candidate{
flex: 1 1 auto; flex: 1 1 auto;
background: #FFFFFF; background: #ffffff;
border-radius: 12px; border-radius: 12px;
&__container{ &__container {
padding: 40px 18px 32px 36px; padding: 40px 18px 32px 36px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -60,33 +55,32 @@
padding: 20px; padding: 20px;
} }
} }
&__note{ &__note {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 22px; gap: 22px;
&:not(:last-child){ &:not(:last-child) {
margin: 0 0 30px 0; margin: 0 0 30px 0;
} }
} }
&__icon{ &__icon {
width: 25px; width: 25px;
height: 30px; height: 30px;
} }
&__title{ &__title {
color: #52B709; color: #52b709;
font-weight: 900; font-weight: 900;
font-size: 14px; font-size: 14px;
line-height: 171%; line-height: 171%;
margin: 0 0 20px 0; margin: 0 0 20px 0;
} }
&__text{ &__text {
font-weight: 400; font-weight: 400;
font-size: 12px; font-size: 12px;
line-height: 200%; line-height: 200%;
color: #000000; color: #000000;
max-width: 235px; max-width: 235px;
span{ span {
color: #406128; color: #406128;
font-weight: 700; font-weight: 700;
text-decoration: underline; text-decoration: underline;
@ -94,7 +88,7 @@
} }
} }
.info-candidate{ .info-candidate {
width: 100%; width: 100%;
background: #fff; background: #fff;
border-radius: 12px; border-radius: 12px;
@ -102,23 +96,23 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 47px; gap: 47px;
@media (max-width:560px) { @media (max-width: 560px) {
padding: 20px; padding: 20px;
} }
&__img{ &__img {
flex: 0 0 88px; flex: 0 0 88px;
height: 88px; height: 88px;
img{ img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
border-radius: 50%; border-radius: 50%;
} }
} }
&__info{ &__info {
width: 100%; width: 100%;
} }
&__title{ &__title {
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 16px;
line-height: 200%; line-height: 200%;
@ -126,20 +120,19 @@
margin: 0 0 12px 0; margin: 0 0 12px 0;
} }
&__decor{ &__decor {
background: #52B709; background: #52b709;
border-radius: 12px; border-radius: 12px;
height: 8px; height: 8px;
width: 60%; width: 60%;
} }
} }
.bottom-head{ .bottom-head {
margin: 0 0 40px 0; margin: 0 0 40px 0;
height: 66px; height: 66px;
background: #FFF; background: #fff;
&__container{ &__container {
max-width: 1160px;
margin: 0 auto; margin: 0 auto;
padding: 0 15px; padding: 0 15px;
height: 100%; height: 100%;
@ -147,17 +140,17 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
&__img{ &__img {
flex: 0 0 37px; flex: 0 0 37px;
height: 37px; height: 37px;
img{ img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
border-radius: 50%; border-radius: 50%;
} }
} }
&__title{ &__title {
font-weight: 500; font-weight: 500;
font-size: 18px; font-size: 18px;
line-height: 178%; line-height: 178%;

View File

@ -7,6 +7,7 @@ import { apiRequest } from "@api/request";
import CategoriesItem from "@components/CategoriesItem/CategoriesItem"; import CategoriesItem from "@components/CategoriesItem/CategoriesItem";
import { Footer } from "@components/Common/Footer/Footer"; import { Footer } from "@components/Common/Footer/Footer";
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";
@ -27,7 +28,8 @@ import BackEndImg from "assets/images/partnerProfile/personalBackEnd.svg";
import "./quiz-page.scss"; import "./quiz-page.scss";
export const QuizPage = () => { export const QuizPage = () => {
const [questionnaires, setQuestionnaires] = useState(null); const [questionnaires, setQuestionnaires] = useState([]);
const [loader, setLoader] = useState(false);
const dispatch = useDispatch(); const dispatch = useDispatch();
const [personalInfoItems] = useState([ const [personalInfoItems] = useState([
{ {
@ -102,8 +104,12 @@ export const QuizPage = () => {
const [selectedCategory, setSetSelectedCategory] = useState(false); const [selectedCategory, setSetSelectedCategory] = useState(false);
useEffect(() => { useEffect(() => {
setLoader(true);
apiRequest(`/user-questionnaire/questionnaires-list?user_id=${userId}`) apiRequest(`/user-questionnaire/questionnaires-list?user_id=${userId}`)
.then((res) => setQuestionnaires(res)) .then((res) => {
setQuestionnaires(res);
setLoader(false);
})
.catch((e) => console.log(e)); .catch((e) => console.log(e));
}, []); }, []);
@ -122,7 +128,9 @@ export const QuizPage = () => {
<div className="quiz-page__title main-title"> <div className="quiz-page__title main-title">
{!selectedCategory ? "Тестирование" : "Замена специализации"} {!selectedCategory ? "Тестирование" : "Замена специализации"}
</div> </div>
{!selectedCategory && ( {loader ? (
<Loader />
) : (
<> <>
{/*<div className="quiz-page__specialization">*/} {/*<div className="quiz-page__specialization">*/}
{/* <SelectedCategory setSelectedCategory={setSetSelectedCategory} />*/} {/* <SelectedCategory setSelectedCategory={setSetSelectedCategory} />*/}

View File

@ -7,6 +7,7 @@ import { selectedTest } from "@redux/quizSlice";
import { apiRequest } from "@api/request"; import { apiRequest } from "@api/request";
import { Footer } from "@components/Common/Footer/Footer"; import { Footer } from "@components/Common/Footer/Footer";
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";
@ -23,16 +24,19 @@ export const QuizReportPage = () => {
navigate("/Quiz"); navigate("/Quiz");
} }
const [testInfo, setTestInfo] = useState({});
const [loader, setLoader] = useState(false);
useEffect(() => { useEffect(() => {
setLoader(true);
apiRequest( apiRequest(
`/user-questionnaire/questionnaire-completed?user_questionnaire_uuid=${params.uuid}` `/user-questionnaire/questionnaire-completed?user_questionnaire_uuid=${params.uuid}`
).then((res) => { ).then((res) => {
setTestInfo(res); setTestInfo(res);
setLoader(false);
}); });
}, []); }, []);
const [testInfo, setTestInfo] = useState({});
return ( return (
<div className="quiz-report-page"> <div className="quiz-report-page">
<ProfileHeader /> <ProfileHeader />
@ -46,6 +50,10 @@ export const QuizReportPage = () => {
{ name: "Отчет по тестированию", link: "/profile/quiz" } { name: "Отчет по тестированию", link: "/profile/quiz" }
]} ]}
/> />
{loader ? (
<Loader />
) : (
<>
<div className="quiz-report-page__title main-title"> <div className="quiz-report-page__title main-title">
Отчет по тестированию позиции {testInfo.questionnaire_title} Отчет по тестированию позиции {testInfo.questionnaire_title}
</div> </div>
@ -53,6 +61,8 @@ export const QuizReportPage = () => {
<QuizReport info={testInfo} /> <QuizReport info={testInfo} />
</div> </div>
<AlertResult info={testInfo} /> <AlertResult info={testInfo} />
</>
)}
</div> </div>
<Footer /> <Footer />
</div> </div>

View File

@ -1,13 +1,12 @@
.quiz-page { .quiz-page {
background: #f1f1f1; background: #f1f1f1;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
&__container { &__container {
max-width: 1160px; display: flex;
flex-direction: column;
margin: 23px auto 42px auto; margin: 23px auto 42px auto;
flex: 1 1 auto; flex: 1 1 auto;
width: 100%; width: 100%;
@ -64,9 +63,7 @@
.interjacent-page-quiz { .interjacent-page-quiz {
background: #f1f1f1; background: #f1f1f1;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -79,7 +76,7 @@
} }
&__container { &__container {
max-width: 1160px; display: flex;
margin: 23px auto 42px auto; margin: 23px auto 42px auto;
flex: 1 1 auto; flex: 1 1 auto;
width: 100%; width: 100%;
@ -96,14 +93,12 @@
.passing-tests-page { .passing-tests-page {
background: #f1f1f1; background: #f1f1f1;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
&__container { &__container {
max-width: 1160px; display: flex;
margin: 23px auto 42px auto; margin: 23px auto 42px auto;
flex: 1 1 auto; flex: 1 1 auto;
width: 100%; width: 100%;
@ -136,14 +131,13 @@
.quiz-report-page { .quiz-report-page {
background: #f1f1f1; background: #f1f1f1;
height: 100%;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
&__container { &__container {
max-width: 1160px; display: flex;
flex-direction: column;
margin: 23px auto 42px auto; margin: 23px auto 42px auto;
flex: 1 1 auto; flex: 1 1 auto;
width: 100%; width: 100%;

View File

@ -1,5 +1,4 @@
.registration-candidate { .registration-candidate {
font-family: "LabGrotesque", sans-serif;
position: relative; position: relative;
background-color: #f1f1f1; background-color: #f1f1f1;
@ -188,8 +187,4 @@
} }
} }
} }
footer {
margin-top: 80px;
}
} }

View File

@ -212,8 +212,8 @@ export const RegistrationSetting = () => {
</button> </button>
)} )}
</div> </div>
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,6 +1,5 @@
.registration-setting { .registration-setting {
&__content { &__content {
font-family: "LabGrotesque", sans-serif;
background-color: #f1f1f1; background-color: #f1f1f1;
color: #000000; color: #000000;
padding: 50px 0 0; padding: 50px 0 0;

View File

@ -105,7 +105,10 @@ const Statistics = () => {
<div className="statistics-header__menu"> <div className="statistics-header__menu">
<h1>Статистика проекта</h1> <h1>Статистика проекта</h1>
<img src={link} alt="#" /> <img src={link} alt="#" />
<span className="return-text" onClick={copyProjectLink("62")}> <span
className="return-text"
onClick={() => copyProjectLink("62")}
>
ссылка на проект ссылка на проект
</span> </span>
</div> </div>

View File

@ -1,9 +1,8 @@
.statistics { .statistics {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
position: relative;
&-header { &-header {
display: flex; display: flex;

View File

@ -1,8 +1,8 @@
.summary { .summary {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
&__content { &__content {
display: flex; display: flex;
@ -509,12 +509,10 @@
} }
} }
footer {
margin-top: 10px;
}
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {

View File

@ -1,8 +1,8 @@
.tracker { .tracker {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
position: relative; position: relative;
.container { .container {
@ -18,14 +18,6 @@
margin-top: 23px; margin-top: 23px;
} }
footer {
margin-top: 70px;
.row {
margin-right: 0px;
}
}
&__title { &__title {
font-weight: 700; font-weight: 700;
font-size: 22px; font-size: 22px;
@ -34,9 +26,9 @@
} }
&__tabs { &__tabs {
min-height: 600px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex: 1;
&__head { &__head {
display: flex; display: flex;

View File

@ -38,8 +38,8 @@ export const TrackerAuth = () => {
<ModalReset setModalReset={setModalReset} /> <ModalReset setModalReset={setModalReset} />
</ModalLayout> </ModalLayout>
)} )}
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,10 +1,16 @@
.tracker-auth { .tracker-auth {
&__content { display: flex;
font-family: "LabGrotesque", sans-serif; flex-direction: column;
min-height: 100vh;
background-color: #f1f1f1; background-color: #f1f1f1;
&__content {
display: flex;
flex-direction: column;
flex: 1;
color: #000000; color: #000000;
padding: 50px 0 0; padding: 50px 0 0;
min-height: 100vh;
@media (max-width: 1375px) { @media (max-width: 1375px) {
padding-top: 100px; padding-top: 100px;
@ -25,7 +31,7 @@
margin-bottom: 46px; margin-bottom: 46px;
color: #000000; color: #000000;
span { span {
color: #52B709; color: #52b709;
position: relative; position: relative;
img { img {
position: absolute; position: absolute;

View File

@ -102,8 +102,8 @@ export const TrackerIntro = () => {
</div> </div>
</div> </div>
</div> </div>
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,7 +1,6 @@
.tracker-intro { .tracker-intro {
&__content {
font-family: "LabGrotesque", sans-serif;
background-color: #f1f1f1; background-color: #f1f1f1;
&__content {
color: #000000; color: #000000;
@media (max-width: 1375px) { @media (max-width: 1375px) {

View File

@ -149,8 +149,8 @@ export const TrackerRegistration = () => {
/> />
</ModalLayout> </ModalLayout>
)} )}
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,6 +1,5 @@
.tracker-registration { .tracker-registration {
&__content { &__content {
font-family: "LabGrotesque", sans-serif;
background-color: #f1f1f1; background-color: #f1f1f1;
color: #000000; color: #000000;
padding: 50px 0 0; padding: 50px 0 0;

View File

@ -269,8 +269,8 @@ export const ViewReport = () => {
)} )}
</div> </div>
)} )}
<Footer />
</div> </div>
<Footer />
</div> </div>
); );
}; };

View File

@ -1,11 +1,13 @@
.view-report { .view-report {
background: #f1f1f1; background: #f1f1f1;
height: 100%; display: flex;
flex-direction: column;
min-height: 100vh; min-height: 100vh;
font-family: "LabGrotesque", sans-serif;
.container { .container {
max-width: 1160px; display: flex;
flex-direction: column;
flex: 1;
margin-top: 23px; margin-top: 23px;
@media (max-width: 570px) { @media (max-width: 570px) {
@ -424,12 +426,4 @@
} }
} }
} }
footer {
margin-top: 70px;
@media (max-width: 575px) {
margin-top: 0;
}
}
} }

View File

@ -2,34 +2,33 @@ export function createMarkup(text) {
return { __html: text.split("</p>").join("</p>") }; return { __html: text.split("</p>").join("</p>") };
} }
// export function transformHtml(text) { export function transformHtml(text) {
// let startHtml = { let startHtml = {
// __html: text.split("<h3> || <h2>").join("<br><h2>").split("<br>"), __html: text.split("<h3> || <h2>").join("<br><h2>").split("<br>")
// }; };
// startHtml = startHtml.__html.filter( startHtml = startHtml.__html.filter(
// (el) => (el !== null && el !== "") || el === 0 (el) => (el !== null && el !== "") || el === 0
// ); );
// const finalHtml = startHtml.map( const finalHtml = startHtml.map(
// (item) => (item) =>
// `<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>`
// ); );
// return { __html: finalHtml.join("") }; return { __html: finalHtml.join("") };
// } }
//
// export const setToken = () => { export const setToken = () => {
// const url = new URL(window.location.href); const url = new URL(window.location.href);
// const urlT = url.searchParams.get("token"); const urlT = url.searchParams.get("token");
// urlT ? sessionStorage.setItem('token', 'Bearer ' + urlT) : ''; urlT ? sessionStorage.setItem("token", "Bearer " + urlT) : "";
// const tParam = urlT || sessionStorage.getItem('token'); const tParam = urlT || sessionStorage.getItem("token");
// return tParam ? {"Authorization": tParam} : false return tParam ? { Authorization: tParam } : false;
// };
// };
export const getToken = () => { export const getToken = () => {
const tParam = `Bearer ${localStorage.getItem("auth_token")}`; const tParam = `Bearer ${localStorage.getItem("auth_token")}`;