Added prettier format imports

This commit is contained in:
MaxOvs19
2023-05-31 08:36:15 +03:00
parent fe656c0360
commit fc8fc33733
91 changed files with 1712 additions and 1509 deletions

View File

@ -1,16 +1,17 @@
import React, { useEffect, useRef, useState } from "react";
import { useNavigate } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
import { useNavigate } from "react-router-dom";
import { auth, selectAuth, setUserInfo } from "@redux/outstaffingSlice";
import { loading, selectIsLoading } from "@redux/loaderSlice";
import { auth, selectAuth, setUserInfo } from "@redux/outstaffingSlice";
import { setRole } from "@redux/roleSlice";
import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration";
import ModalErrorLogin from "@components/Modal/ModalErrorLogin/ModalErrorLogin";
import { Loader } from "@components/Common/Loader/Loader";
import { apiRequest } from "@api/request";
import { Loader } from "@components/Common/Loader/Loader";
import ModalErrorLogin from "@components/Modal/ModalErrorLogin/ModalErrorLogin";
import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration";
import ellipse from "assets/icons/ellipse.png";
import "./authBox.scss";

View File

@ -2,16 +2,18 @@ import React, { useEffect, useState } from "react";
import { useSelector } from "react-redux";
import { Link, Navigate, useNavigate } from "react-router-dom";
import CalendarComponent from "./CalendarComponent";
import { currentMonth } from "./calendarHelper";
import { selectCurrentCandidate } from "@redux/outstaffingSlice";
import { urlForLocal } from "@utils/helper";
import { Footer } from "@components/Common/Footer/Footer";
import { LogoutButton } from "@components/LogoutButton/LogoutButton";
import { urlForLocal } from "@utils/helper";
import { selectCurrentCandidate } from "@redux/outstaffingSlice";
import rectangle from "assets/images/rectangle_secondPage.png";
import CalendarComponent from "./CalendarComponent";
import "./calendar.scss";
import { currentMonth } from "./calendarHelper";
const Calendar = () => {
if (localStorage.getItem("role_status") !== "18") {

View File

@ -1,15 +1,13 @@
import React, { useState, useEffect } from "react";
import { calendarHelper, currentMonthAndDay } from "./calendarHelper";
import moment from "moment";
import "moment/locale/ru";
import React, { useEffect, useState } from "react";
import calendarIcon from "assets/icons/calendar.svg";
import ellipse from "assets/icons/ellipse.png";
import rectangle from "assets/images/rectangle__calendar.png";
import calendarIcon from "assets/icons/calendar.svg";
import moment from "moment";
import "moment/locale/ru";
import "./calendarComponent.scss";
import { calendarHelper, currentMonthAndDay } from "./calendarHelper";
const CalendarComponent = ({ onSelect }) => {
const [value, setValue] = useState(moment());

View File

@ -1,29 +1,30 @@
import React, { useEffect, useState } from "react";
import { useParams, Link, useNavigate, Navigate } from "react-router-dom";
import { useSelector, useDispatch } from "react-redux";
import SkillSection from "@components/SkillSection/SkillSection";
import Sidebar from "@components/CandidateSidebar/CandidateSidebar";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { Footer } from "@components/Common/Footer/Footer";
import { Navigation } from "@components/Navigation/Navigation";
import { useDispatch, useSelector } from "react-redux";
import { Link, Navigate, useNavigate, useParams } from "react-router-dom";
import {
currentCandidate,
selectCurrentCandidate,
} from "@redux/outstaffingSlice";
import { apiRequest } from "@api/request";
import { createMarkup } from "@utils/helper";
import { LEVELS, SKILLS } from "@utils/constants";
import { createMarkup } from "@utils/helper";
import { apiRequest } from "@api/request";
import Sidebar from "@components/CandidateSidebar/CandidateSidebar";
import { Footer } from "@components/Common/Footer/Footer";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import SkillSection from "@components/SkillSection/SkillSection";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
import gitImgItem from "assets/icons/gitItemImg.svg";
import rectangle from "assets/images/rectangle_secondPage.png";
import front from "assets/images/partnerProfile/front-end.webp";
import back from "assets/images/partnerProfile/back-end.webp";
import design from "assets/images/partnerProfile/design.webp";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
import front from "assets/images/partnerProfile/front-end.webp";
import rectangle from "assets/images/rectangle_secondPage.png";
import "./candidate.scss";

View File

@ -1,11 +1,11 @@
import React, { useState } from "react";
import { LEVELS, SKILLS } from "@utils/constants";
import { urlForLocal } from "@utils/helper";
import { Achievement } from "@components/Achievement/Achievement";
import ModalAspirant from "@components/Modal/ModalAspirant/ModalAspirant";
import { urlForLocal } from "@utils/helper";
import { LEVELS, SKILLS } from "@utils/constants";
import "./candidateSidebar.scss";
const getYearsString = (years) => {

View File

@ -1,23 +1,23 @@
import React from "react";
import { Link } from "react-router-dom";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
import "./CardControl.scss";
export const CardControl = ({ title, path, description, img }) => {
return (
<Link to={`/${path}`} className="control-card">
<div className="control-card__about">
<img src={img} alt="itemImg" />
<h3>{title}</h3>
</div>
<div className="control-card__info">
<p dangerouslySetInnerHTML={{ __html: description }}></p>
<div className="control-card__infoLink">
<img src={rightArrow} alt="arrow" />
</div>
</div>
</Link>
);
};
import React from "react";
import { Link } from "react-router-dom";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
import "./CardControl.scss";
export const CardControl = ({ title, path, description, img }) => {
return (
<Link to={`/${path}`} className="control-card">
<div className="control-card__about">
<img src={img} alt="itemImg" />
<h3>{title}</h3>
</div>
<div className="control-card__info">
<p dangerouslySetInnerHTML={{ __html: description }}></p>
<div className="control-card__infoLink">
<img src={rightArrow} alt="arrow" />
</div>
</div>
</Link>
);
};

View File

@ -1,9 +1,9 @@
import React from "react";
import logo from "assets/images/logo/LogoITguild.svg";
import vk from "assets/icons/vkLogo.svg";
import tg from "assets/icons/tgFooter.svg";
import email from "assets/icons/emailLogo.svg";
import tg from "assets/icons/tgFooter.svg";
import vk from "assets/icons/vkLogo.svg";
import logo from "assets/images/logo/LogoITguild.svg";
import "./footer.scss";

View File

@ -2,15 +2,15 @@ import React from "react";
import { useSelector } from "react-redux";
import { Link } from "react-router-dom";
import ErrorBoundary from "../../hoc/ErrorBoundary";
import { selectProfiles } from "@redux/outstaffingSlice";
import { LEVELS, SKILLS } from "@utils/constants";
import { urlForLocal } from "@utils/helper";
import { selectProfiles } from "@redux/outstaffingSlice";
import rectangle from "assets/images/rectangle_secondPage.png";
import cursorImg from "assets/icons/cursorImg.svg";
import rectangle from "assets/images/rectangle_secondPage.png";
import ErrorBoundary from "../../hoc/ErrorBoundary";
import "./description.scss";
const Description = ({ onLoadMore, isLoadingMore }) => {

View File

@ -1,13 +1,14 @@
import React, { useEffect, useState } from "react";
import { useParams, useNavigate } from "react-router-dom";
import PhoneInput from "react-phone-input-2";
import { apiRequest } from "@api/request";
import { Loader } from "@components/Common/Loader/Loader";
import "react-phone-input-2/lib/style.css";
import { useNavigate, useParams } from "react-router-dom";
import Swal from "sweetalert2";
import withReactContent from "sweetalert2-react-content";
import "react-phone-input-2/lib/style.css";
import { apiRequest } from "@api/request";
import { Loader } from "@components/Common/Loader/Loader";
import "./form.scss";
const SweetAlert = withReactContent(Swal);

View File

@ -4,13 +4,13 @@ import { Link } from "react-router-dom";
import { scrollToForm } from "@utils/helper";
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
import SideBar from "@components/SideBar/SideBar";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import { Footer } from "@components/Common/Footer/Footer";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import SideBar from "@components/SideBar/SideBar";
import mockWorker from "assets/images/mock/mokPerson.png";
import arrow from "assets/icons/arrows/arrow_left.png";
import mockWorker from "assets/images/mock/mokPerson.png";
import "./freeDevelopers.scss";

View File

@ -1,30 +1,30 @@
import React from "react";
import { Link } from "react-router-dom";
import questionIcon from "assets/images/faq/question.svg";
import "./FrequentlyAskedQuestionsItem.scss";
export const FrequentlyAskedQuestionsItem = ({ rubric }) => {
return (
<div className="frequently-asked-questions-item">
<div className="frequently-asked-questions-item__head">
<div className="frequently-asked-questions-item__icon-question">
<img src={questionIcon} alt="" />
</div>
<div className="frequently-asked-questions-item__title">
{rubric?.title}
</div>
</div>
{rubric?.questions?.map((question) => (
<Link
key={question.id}
to={`/frequently-asked-question/${question.id}`}
className="frequently-asked-questions-item__body"
>
<p>{question.title}</p>
</Link>
))}
</div>
);
};
import React from "react";
import { Link } from "react-router-dom";
import questionIcon from "assets/images/faq/question.svg";
import "./FrequentlyAskedQuestionsItem.scss";
export const FrequentlyAskedQuestionsItem = ({ rubric }) => {
return (
<div className="frequently-asked-questions-item">
<div className="frequently-asked-questions-item__head">
<div className="frequently-asked-questions-item__icon-question">
<img src={questionIcon} alt="" />
</div>
<div className="frequently-asked-questions-item__title">
{rubric?.title}
</div>
</div>
{rubric?.questions?.map((question) => (
<Link
key={question.id}
to={`/frequently-asked-question/${question.id}`}
className="frequently-asked-questions-item__body"
>
<p>{question.title}</p>
</Link>
))}
</div>
);
};

View File

@ -1,10 +1,12 @@
import React, { useState } from "react";
import { useNavigate } from "react-router-dom";
import { useSelector } from "react-redux";
import { useNavigate } from "react-router-dom";
import { getRole } from "@redux/roleSlice";
import { useLogout } from "@hooks/useLogout";
import { Loader } from "@components/Common/Loader/Loader";
import { getRole } from "@redux/roleSlice";
import "./logoutButton.scss";

View File

@ -1,13 +1,13 @@
import React, { useState } from "react";
import { Link } from "react-router-dom";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import avatar from "assets/images/mock/mokPerson.png";
import logoTg from "assets/icons/tgLogo.svg";
import arrow from "assets/icons/arrows/left-arrow.png";
import logoTg from "assets/icons/tgLogo.svg";
import interview from "assets/images/logo/interviewLogo.svg";
import avatar from "assets/images/mock/mokPerson.png";
import "./modalAspirant.scss";

View File

@ -1,7 +1,7 @@
import React from "react";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import "./modalErrorLogin.scss";

View File

@ -1,11 +1,11 @@
import React from "react";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import telegramLogo from "assets/icons/tgLogo.svg";
import doc from "assets/icons/doc.svg";
import anyMoment from "assets/icons/anyMoment.svg";
import doc from "assets/icons/doc.svg";
import telegramLogo from "assets/icons/tgLogo.svg";
import "./modalRegistration.scss";

View File

@ -1,28 +1,30 @@
import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import { useDispatch } from "react-redux";
import { Link } from "react-router-dom";
import { modalToggle, setProjectBoardFetch } from "@redux/projectsTrackerSlice";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import { urlForLocal } from "@utils/helper";
import { modalToggle, setProjectBoardFetch } from "@redux/projectsTrackerSlice";
import { getCorrectDate } from "@components/Calendar/calendarHelper";
import TrackerModal from "@components/Modal/TrackerModal/TrackerModal";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import TrackerModal from "@components/Modal/TrackerModal/TrackerModal";
import category from "assets/icons/category.svg";
import watch from "assets/icons/watch.svg";
import file from "assets/icons/fileModal.svg";
import arrow from "assets/icons/arrows/arrowStart.png";
import link from "assets/icons/link.svg";
import archive from "assets/icons/archive.svg";
import arrow from "assets/icons/arrows/arrowStart.png";
import fullScreen from "assets/icons/arrows/inFullScreen.svg";
import category from "assets/icons/category.svg";
import close from "assets/icons/closeProjectPersons.svg";
import del from "assets/icons/delete.svg";
import edit from "assets/icons/edit.svg";
import send from "assets/icons/send.svg";
import file from "assets/icons/fileModal.svg";
import link from "assets/icons/link.svg";
import plus from "assets/icons/plus.svg";
import fullScreen from "assets/icons/arrows/inFullScreen.svg";
import close from "assets/icons/closeProjectPersons.svg";
import send from "assets/icons/send.svg";
import watch from "assets/icons/watch.svg";
import "./ModalTicket.scss";

View File

@ -1,42 +1,44 @@
import React, { useEffect, useState } from "react";
import { Link, useParams, useNavigate } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { Footer } from "@components/Common/Footer/Footer";
import { getCorrectDate } from "@components/Calendar/calendarHelper";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import TrackerModal from "@components/Modal/TrackerModal/TrackerModal";
import { Navigation } from "@components/Navigation/Navigation";
import { Loader } from "@components/Common/Loader/Loader";
import { Link, useNavigate, useParams } from "react-router-dom";
import {
deletePersonOnProject,
getBoarderLoader,
getProjectBoard,
modalToggle,
setProjectBoardFetch,
setToggleTab,
getProjectBoard,
getBoarderLoader,
} from "@redux/projectsTrackerSlice";
import { apiRequest } from "@api/request";
import { urlForLocal } from "@utils/helper";
import project from "assets/icons/trackerProject.svg";
import watch from "assets/icons/watch.svg";
import file from "assets/icons/fileModal.svg";
import send from "assets/icons/send.svg";
import arrow2 from "assets/icons/arrows/arrowStart.png";
import plus from "assets/icons/plus.svg";
import tasks from "assets/icons/trackerTasks.svg";
import archive from "assets/icons/archiveTracker.svg";
import selectArrow from "assets/icons/arrows/select.svg";
import arrow from "assets/icons/arrows/arrowCalendar.png";
import link from "assets/icons/link.svg";
import { apiRequest } from "@api/request";
import { getCorrectDate } from "@components/Calendar/calendarHelper";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import { Footer } from "@components/Common/Footer/Footer";
import { Loader } from "@components/Common/Loader/Loader";
import TrackerModal from "@components/Modal/TrackerModal/TrackerModal";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import archive2 from "assets/icons/archive.svg";
import archive from "assets/icons/archiveTracker.svg";
import arrow from "assets/icons/arrows/arrowCalendar.png";
import arrow2 from "assets/icons/arrows/arrowStart.png";
import selectArrow from "assets/icons/arrows/select.svg";
import close from "assets/icons/closeProjectPersons.svg";
import del from "assets/icons/delete.svg";
import edit from "assets/icons/edit.svg";
import close from "assets/icons/closeProjectPersons.svg";
import file from "assets/icons/fileModal.svg";
import link from "assets/icons/link.svg";
import plus from "assets/icons/plus.svg";
import send from "assets/icons/send.svg";
import project from "assets/icons/trackerProject.svg";
import tasks from "assets/icons/trackerTasks.svg";
import watch from "assets/icons/watch.svg";
import "./ticketFullScreen.scss";

View File

@ -1,21 +1,23 @@
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { apiRequest } from "@api/request";
import { urlForLocal } from "@utils/helper";
import {
setColumnName,
addPersonToProject,
editColumnName,
editProjectName,
getColumnId,
getColumnName,
getProjectBoard,
getValueModalType,
setColumnName,
setProject,
setProjectBoardFetch,
editProjectName,
editColumnName,
getColumnName,
getColumnId,
addPersonToProject,
} from "@redux/projectsTrackerSlice";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import arrowDown from "assets/icons/arrows/selectArrow.png";
import "./trackerModal.scss";

View File

@ -1,108 +1,110 @@
import React, { useEffect, useState } from "react";
import { NavLink } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import { getProfileInfo, setProfileInfo } from "@redux/outstaffingSlice";
import avatarMok from "assets/images/avatarMok.png";
export const Navigation = () => {
const dispatch = useDispatch();
const profileInfo = useSelector(getProfileInfo);
const [user] = useState(
localStorage.getItem("role_status") === "18" ? "partner" : "developer"
);
const [navInfo] = useState({
developer: [
{
path: "/summary",
name: "Резюме",
},
{
path: "/calendar",
name: "Отчетность",
},
{
path: "/tracker",
name: "Трекер",
},
{
path: "/payouts",
name: "Выплаты",
},
{
path: "/settings",
name: "Настройки",
},
],
partner: [
{
path: "/catalog",
name: "Каталог",
},
{
path: "/requests",
name: "Запросы",
},
{
path: "/categories",
name: "Персонал",
},
{
path: "/tracker",
name: "Трекер",
},
{
path: "/treaties",
name: "Договора",
},
{
path: "/settings",
name: "Настройки",
},
],
});
useEffect(() => {
if (localStorage.getItem("role_status") === "18") {
return;
}
apiRequest(`/profile/${localStorage.getItem("cardId")}`).then(
(profileInfo) => dispatch(setProfileInfo(profileInfo))
);
}, [dispatch]);
return (
<div className="profileHeader__info">
<div className="profileHeader__container">
<nav className="profileHeader__nav">
{navInfo[user].map((link, index) => {
return (
<NavLink key={index} end to={`/profile${link.path}`}>
{link.name}
</NavLink>
);
})}
</nav>
<div className="profileHeader__personalInfo">
<h3 className="profileHeader__personalInfoName">
{user === "developer" ? profileInfo?.fio : ""}
</h3>
<NavLink end to={"/profile"}>
<img
src={
profileInfo.photo ? urlForLocal(profileInfo.photo) : avatarMok
}
className="profileHeader__personalInfoAvatar"
alt="avatar"
/>
</NavLink>
</div>
</div>
</div>
);
};
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { NavLink } from "react-router-dom";
import { getProfileInfo, setProfileInfo } from "@redux/outstaffingSlice";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import avatarMok from "assets/images/avatarMok.png";
export const Navigation = () => {
const dispatch = useDispatch();
const profileInfo = useSelector(getProfileInfo);
const [user] = useState(
localStorage.getItem("role_status") === "18" ? "partner" : "developer"
);
const [navInfo] = useState({
developer: [
{
path: "/summary",
name: "Резюме",
},
{
path: "/calendar",
name: "Отчетность",
},
{
path: "/tracker",
name: "Трекер",
},
{
path: "/payouts",
name: "Выплаты",
},
{
path: "/settings",
name: "Настройки",
},
],
partner: [
{
path: "/catalog",
name: "Каталог",
},
{
path: "/requests",
name: "Запросы",
},
{
path: "/categories",
name: "Персонал",
},
{
path: "/tracker",
name: "Трекер",
},
{
path: "/treaties",
name: "Договора",
},
{
path: "/settings",
name: "Настройки",
},
],
});
useEffect(() => {
if (localStorage.getItem("role_status") === "18") {
return;
}
apiRequest(`/profile/${localStorage.getItem("cardId")}`).then(
(profileInfo) => dispatch(setProfileInfo(profileInfo))
);
}, [dispatch]);
return (
<div className="profileHeader__info">
<div className="profileHeader__container">
<nav className="profileHeader__nav">
{navInfo[user].map((link, index) => {
return (
<NavLink key={index} end to={`/profile${link.path}`}>
{link.name}
</NavLink>
);
})}
</nav>
<div className="profileHeader__personalInfo">
<h3 className="profileHeader__personalInfoName">
{user === "developer" ? profileInfo?.fio : ""}
</h3>
<NavLink end to={"/profile"}>
<img
src={
profileInfo.photo ? urlForLocal(profileInfo.photo) : avatarMok
}
className="profileHeader__personalInfoAvatar"
alt="avatar"
/>
</NavLink>
</div>
</div>
</div>
);
};

View File

@ -1,18 +1,18 @@
import React from "react";
import { useSelector, useDispatch } from "react-redux";
import { useDispatch, useSelector } from "react-redux";
import {
getPositionId,
selectTags,
setPositionId,
} from "@redux/outstaffingSlice";
import OutstaffingBlock from "@components/OutstaffingBlock/OutstaffingBlock";
import TagSelect from "@components/Select/TagSelect";
import {
selectTags,
getPositionId,
setPositionId,
} from "@redux/outstaffingSlice";
import front from "assets/images/partnerProfile/front-end.webp";
import back from "assets/images/partnerProfile/back-end.webp";
import design from "assets/images/partnerProfile/design.webp";
import front from "assets/images/partnerProfile/front-end.webp";
import "./outstaffing.scss";

View File

@ -2,7 +2,8 @@ import React from "react";
import OutsideClickHandler from "react-outside-click-handler";
import { useDispatch, useSelector } from "react-redux";
import { selectItems, selectedItems, profiles } from "@redux/outstaffingSlice";
import { profiles, selectItems, selectedItems } from "@redux/outstaffingSlice";
import { apiRequest } from "@api/request";
import "./outstaffingBlock.scss";

View File

@ -1,26 +1,28 @@
import moment from "moment";
import "moment/locale/ru";
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { Link, Navigate } from "react-router-dom";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import { getProfileInfo } from "@redux/outstaffingSlice";
import {
getRequestDates,
setReportDate,
setRequestDate,
} from "@redux/reportSlice";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import { getReports } from "@components/Calendar/calendarHelper";
import { Footer } from "@components/Common/Footer/Footer";
import { Loader } from "@components/Common/Loader/Loader";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { ProfileCalendarComponent } from "./ProfileCalendarComponent";
import { Loader } from "@components/Common/Loader/Loader";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { Footer } from "@components/Common/Footer/Footer";
import { Navigation } from "@components/Navigation/Navigation";
import moment from "moment";
import "moment/locale/ru";
import "./profileCalendar.scss";
export const ProfileCalendar = () => {

View File

@ -1,4 +1,6 @@
import React, { useState, useEffect } from "react";
import moment from "moment";
import "moment/locale/ru";
import React, { useEffect, useState } from "react";
import { useDispatch } from "react-redux";
import { Link } from "react-router-dom";
@ -7,6 +9,8 @@ import {
setRequestDate,
setSendRequest,
} from "@redux/reportSlice";
import "@components/Calendar/calendarComponent.scss";
import {
calendarHelper,
currentMonthAndDay,
@ -16,13 +20,8 @@ import {
import ShortReport from "@components/ShortReport/ShortReport";
import arrow from "assets/icons/arrows/arrowCalendar.png";
import rectangle from "assets/images/rectangle__calendar.png";
import calendarIcon from "assets/icons/calendar.svg";
import moment from "moment";
import "moment/locale/ru";
import "@components/Calendar/calendarComponent.scss";
import rectangle from "assets/images/rectangle__calendar.png";
export const ProfileCalendarComponent = React.memo(
({ value, setValueHandler, reports, totalHours }) => {

View File

@ -1,12 +1,14 @@
import React, { useEffect, useState } from "react";
import { useNavigate, NavLink } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
import { NavLink, useNavigate } from "react-router-dom";
import { Loader } from "@components/Common/Loader/Loader";
import { apiRequest } from "@api/request";
import { auth, setProfileInfo } from "@redux/outstaffingSlice";
import { getRole } from "@redux/roleSlice";
import { apiRequest } from "@api/request";
import { Loader } from "@components/Common/Loader/Loader";
import "./profileHeader.scss";
export const ProfileHeader = () => {

View File

@ -2,16 +2,17 @@ import React, { useEffect, useState } from "react";
import { useDispatch } from "react-redux";
import { Link } from "react-router-dom";
import { apiRequest } from "@api/request";
import { deleteProject, modalToggle } from "@redux/projectsTrackerSlice";
import { apiRequest } from "@api/request";
import { ModalSelect } from "@components/Modal/ModalSelect/ModalSelect";
import TrackerModal from "@components/Modal/TrackerModal/TrackerModal";
import link from "assets/icons/link.svg";
import archiveSet from "assets/icons/archive.svg";
import del from "assets/icons/delete.svg";
import edit from "assets/icons/edit.svg";
import link from "assets/icons/link.svg";
import "./projectTiket.scss";

View File

@ -1,6 +1,6 @@
import React from "react";
import { useSelector } from "react-redux";
import { Route, Redirect } from "react-router-dom";
import { Redirect, Route } from "react-router-dom";
import { selectAuth } from "@redux/outstaffingSlice";

View File

@ -1,31 +1,33 @@
import React, { useState, useEffect } from "react";
import ru from "date-fns/locale/ru";
import React, { useEffect, useState } from "react";
import DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { useSelector } from "react-redux";
import { Link, Navigate, useNavigate } from "react-router-dom";
import DatePicker, { registerLocale } from "react-datepicker";
import { getReportDate } from "@redux/reportSlice";
import { apiRequest } from "@api/request";
import { Footer } from "@components/Common/Footer/Footer";
import { Loader } from "@components/Common/Loader/Loader";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import arrow from "assets/icons/arrows/left-arrow.png";
import calendarIcon from "assets/icons/calendar.svg";
import ellipse from "assets/icons/ellipse.png";
import remove from "assets/icons/remove.svg";
import {
getCorrectDate,
getCreatedDate,
hourOfNum,
} from "../Calendar/calendarHelper";
import ru from "date-fns/locale/ru";
registerLocale("ru", ru);
import { Loader } from "@components/Common/Loader/Loader";
import { Footer } from "@components/Common/Footer/Footer";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { apiRequest } from "@api/request";
import { Navigation } from "@components/Navigation/Navigation";
import { getReportDate } from "@redux/reportSlice";
import calendarIcon from "assets/icons/calendar.svg";
import ellipse from "assets/icons/ellipse.png";
import remove from "assets/icons/remove.svg";
import arrow from "assets/icons/arrows/left-arrow.png";
import "./reportForm.scss";
import "react-datepicker/dist/react-datepicker.css";
registerLocale("ru", ru);
const ReportForm = () => {
if (localStorage.getItem("role_status") === "18") {

View File

@ -1,17 +1,19 @@
import React, { useState } from "react";
import { useSelector, useDispatch } from "react-redux";
import { useDispatch, useSelector } from "react-redux";
import Select from "react-select";
import { Loader } from "@components/Common/Loader/Loader";
import { apiRequest } from "@api/request";
import {
selectedItems,
profiles,
selectItems,
selectTags,
profiles,
selectedItems,
setPositionId,
} from "@redux/outstaffingSlice";
import { apiRequest } from "@api/request";
import { Loader } from "@components/Common/Loader/Loader";
import "./tagSelect.scss";
const TagSelect = () => {

View File

@ -2,17 +2,19 @@ import React, { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { Link } from "react-router-dom";
import { apiRequest } from "@api/request";
import {
getCorrectDate,
getCreatedDate,
hourOfNum,
} from "@components/Calendar/calendarHelper";
import {
getReportDate,
getSendRequest,
setSendRequest,
} from "@redux/reportSlice";
import { apiRequest } from "@api/request";
import {
getCorrectDate,
getCreatedDate,
hourOfNum,
} from "@components/Calendar/calendarHelper";
import { Loader } from "@components/Common/Loader/Loader";
import "./shortReport.scss";

View File

@ -1,14 +1,14 @@
import React, { useState } from "react";
import Slider from "react-slick";
import { Link } from "react-router-dom";
import Slider from "react-slick";
import "slick-carousel/slick/slick-theme.css";
import "slick-carousel/slick/slick.css";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import mockWorker from "assets/images/mock/mokPerson.png";
import "./sliderWorkers.scss";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
export const SliderWorkers = ({ title, titleInfo, subTitle }) => {
const [workers] = useState([

View File

@ -1,86 +1,86 @@
import React, { useEffect, useState } from "react";
import "./StarRating.scss";
const StarRating = ({
countStars = 1,
countActiveStars = 1,
color = "#52B709",
size = 61,
}) => {
const [shadedStars, setShadedStars] = useState([]);
const [noShadedStars, setNoShadedStars] = useState([]);
const percent =
Math.abs(countActiveStars) >= countStars
? 100
: (countActiveStars * 100) / countStars;
useEffect(() => {
for (let index = 0; index < countStars; index++) {
setShadedStars((prev) => [...prev, "★"]);
setNoShadedStars((prev) => [...prev, "☆"]);
}
}, []);
const ratingStyle = {
"--size": size + "px",
};
const activeStyle = {
"--width": percent + "%",
"--color": color,
"--content": shadedStars.join(""),
};
const bodyStyle = {
"--content": noShadedStars.join(""),
"--color": color,
};
return (
<div className="rating" style={ratingStyle}>
<div
className="rating__body"
style={bodyStyle}
data-content={noShadedStars.join("")}
>
<div
className="rating__active"
style={activeStyle}
data-content={shadedStars.join("")}
></div>
<div className="rating__items">
<input
type="radio"
className="rating__item"
value={1}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={2}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={3}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={4}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={5}
name="star"
></input>
</div>
</div>
</div>
);
};
export default React.memo(StarRating);
import React, { useEffect, useState } from "react";
import "./StarRating.scss";
const StarRating = ({
countStars = 1,
countActiveStars = 1,
color = "#52B709",
size = 61,
}) => {
const [shadedStars, setShadedStars] = useState([]);
const [noShadedStars, setNoShadedStars] = useState([]);
const percent =
Math.abs(countActiveStars) >= countStars
? 100
: (countActiveStars * 100) / countStars;
useEffect(() => {
for (let index = 0; index < countStars; index++) {
setShadedStars((prev) => [...prev, "★"]);
setNoShadedStars((prev) => [...prev, "☆"]);
}
}, []);
const ratingStyle = {
"--size": size + "px",
};
const activeStyle = {
"--width": percent + "%",
"--color": color,
"--content": shadedStars.join(""),
};
const bodyStyle = {
"--content": noShadedStars.join(""),
"--color": color,
};
return (
<div className="rating" style={ratingStyle}>
<div
className="rating__body"
style={bodyStyle}
data-content={noShadedStars.join("")}
>
<div
className="rating__active"
style={activeStyle}
data-content={shadedStars.join("")}
></div>
<div className="rating__items">
<input
type="radio"
className="rating__item"
value={1}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={2}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={3}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={4}
name="star"
></input>
<input
type="radio"
className="rating__item"
value={5}
name="star"
></input>
</div>
</div>
</div>
);
};
export default React.memo(StarRating);

View File

@ -1,16 +1,16 @@
import React from "react";
import medium_male from "assets/images/medium_male.png";
export const HeadBottom = () => {
return (
<div className="bottom-head">
<div className="bottom-head__container">
<div className="bottom-head__title">Мои тесты</div>
<div className="bottom-head__img">
<img src={medium_male} alt="" />
</div>
</div>
</div>
);
};
import React from "react";
import medium_male from "assets/images/medium_male.png";
export const HeadBottom = () => {
return (
<div className="bottom-head">
<div className="bottom-head__container">
<div className="bottom-head__title">Мои тесты</div>
<div className="bottom-head__img">
<img src={medium_male} alt="" />
</div>
</div>
</div>
);
};

View File

@ -1,33 +1,33 @@
import React from "react";
import suucessIcon from "assets/images/quiz/success.png";
export const AlertResult = () => {
const successTest = false;
return (
<div className="alert-result">
<div className="alert-result__column">
<img
src={suucessIcon}
alt="suucessIcon"
className="alert-result__icon"
/>
<div
className="alert-result__text"
style={{ color: successTest ? "#52B709" : "#5B6871" }}
>
Благодарим Вас за прохождение теста "Junior разработчик". Ваши
результаты проверены, готовы пригласить Вас в команду
</div>
</div>
{!successTest && (
<div className="alert-result__column">
<button className="alert-result__button quiz-btn">
Запросить еще попытку
</button>
</div>
)}
</div>
);
};
import React from "react";
import suucessIcon from "assets/images/quiz/success.png";
export const AlertResult = () => {
const successTest = false;
return (
<div className="alert-result">
<div className="alert-result__column">
<img
src={suucessIcon}
alt="suucessIcon"
className="alert-result__icon"
/>
<div
className="alert-result__text"
style={{ color: successTest ? "#52B709" : "#5B6871" }}
>
Благодарим Вас за прохождение теста "Junior разработчик". Ваши
результаты проверены, готовы пригласить Вас в команду
</div>
</div>
{!successTest && (
<div className="alert-result__column">
<button className="alert-result__button quiz-btn">
Запросить еще попытку
</button>
</div>
)}
</div>
);
};

View File

@ -1,31 +1,31 @@
import React from "react";
import { Link } from "react-router-dom";
import compltedImage from "assets/images/quiz/compltedImage.png";
export const BlockCompletedTest = () => {
const id = localStorage.getItem("id");
return (
<div className="block-completed-test">
<div className="block-completed-test__container">
<div className="block-completed-test__img">
<img src={compltedImage} alt="" />
</div>
<div className="block-completed-test__title">
Спасибо! <br />
Ваши ответы получены
</div>
<div className="block-completed-test__text">
В течении дня в вашем кабинете будет отображены данные о прохождении
тестирования
</div>
<Link
to={"/profile-candidate/" + id}
className="block-completed-test__button quiz-btn"
>
В кабинет
</Link>
</div>
</div>
);
};
import React from "react";
import { Link } from "react-router-dom";
import compltedImage from "assets/images/quiz/compltedImage.png";
export const BlockCompletedTest = () => {
const id = localStorage.getItem("id");
return (
<div className="block-completed-test">
<div className="block-completed-test__container">
<div className="block-completed-test__img">
<img src={compltedImage} alt="" />
</div>
<div className="block-completed-test__title">
Спасибо! <br />
Ваши ответы получены
</div>
<div className="block-completed-test__text">
В течении дня в вашем кабинете будет отображены данные о прохождении
тестирования
</div>
<Link
to={"/profile-candidate/" + id}
className="block-completed-test__button quiz-btn"
>
В кабинет
</Link>
</div>
</div>
);
};

View File

@ -1,19 +1,19 @@
import React from "react";
import questionIcon from "assets/images/question.png";
import "./quiz.scss";
export const CardIntroduction = ({ title, description }) => {
return (
<div className="card-introduction">
<div className="card-introduction__title">{title}</div>
<div className="card-introduction__body">
<div className="card-introduction__icon">
<img src={questionIcon} alt="" />
</div>
<div className="card-introduction__text">{description}</div>
</div>
</div>
);
};
import React from "react";
import questionIcon from "assets/images/question.png";
import "./quiz.scss";
export const CardIntroduction = ({ title, description }) => {
return (
<div className="card-introduction">
<div className="card-introduction__title">{title}</div>
<div className="card-introduction__body">
<div className="card-introduction__icon">
<img src={questionIcon} alt="" />
</div>
<div className="card-introduction__text">{description}</div>
</div>
</div>
);
};

View File

@ -1,39 +1,39 @@
import React from "react";
import { Link } from "react-router-dom";
import StarRating from "@components/StarRating/StarRating";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
export const CardAvailableTest = ({ title, description, path, passedTest }) => {
return (
<div className="card-available-test">
<Link
to={`/${path}`}
className="card-available-test__container"
style={{
opacity: passedTest ? 0.3 : 1,
pointerEvents: passedTest ? "none" : "all",
}}
>
<div className="card-available-test__top-head">
<StarRating />
<h3 className="card-available-test__title">{title}</h3>
</div>
<div className="card-available-test__info">
<p dangerouslySetInnerHTML={{ __html: description }}></p>
<div className="card-available-test__infoLink">
<img src={rightArrow} alt="arrow" />
</div>
</div>
</Link>
{passedTest && (
<div className="card-available-test__finished">
<p>Получить отчет по тестированию</p>
<Link to={"/quiz/report"}>Отчет по тесту</Link>
</div>
)}
</div>
);
};
import React from "react";
import { Link } from "react-router-dom";
import StarRating from "@components/StarRating/StarRating";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
export const CardAvailableTest = ({ title, description, path, passedTest }) => {
return (
<div className="card-available-test">
<Link
to={`/${path}`}
className="card-available-test__container"
style={{
opacity: passedTest ? 0.3 : 1,
pointerEvents: passedTest ? "none" : "all",
}}
>
<div className="card-available-test__top-head">
<StarRating />
<h3 className="card-available-test__title">{title}</h3>
</div>
<div className="card-available-test__info">
<p dangerouslySetInnerHTML={{ __html: description }}></p>
<div className="card-available-test__infoLink">
<img src={rightArrow} alt="arrow" />
</div>
</div>
</Link>
{passedTest && (
<div className="card-available-test__finished">
<p>Получить отчет по тестированию</p>
<Link to={"/quiz/report"}>Отчет по тесту</Link>
</div>
)}
</div>
);
};

View File

@ -1,7 +1,8 @@
import { Link } from "react-router-dom";
import { useSelector } from "react-redux";
import { Link } from "react-router-dom";
import { selectUserInfo, selectedTest } from "@redux/quizSlice";
import { selectedTest, selectUserInfo } from "@redux/quizSlice";
import { urlForLocal } from "@utils/helper";
import "./quiz.scss";

View File

@ -2,9 +2,11 @@ import React, { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { selectUserInfo, setUserInfo } from "@redux/quizSlice";
import { apiRequest } from "@api/request";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import "./quiz.scss";
export const HeaderQuiz = ({ header }) => {

View File

@ -1,9 +1,10 @@
import { Link } from "react-router-dom";
import { useEffect, useState } from "react";
import { useSelector } from "react-redux";
import { Link } from "react-router-dom";
import { selectedTest } from "@redux/quizSlice";
import { apiRequest } from "@api/request";
import { selectedTest } from "@redux/quizSlice";
import comment from "assets/icons/comment.jpg";

View File

@ -1,7 +1,8 @@
import { Link } from "react-router-dom";
import { useDispatch } from "react-redux";
import { Link } from "react-router-dom";
import { setSelectedTest } from "@redux/quizSlice";
import { urlForLocal } from "@utils/helper";
import calendarImage from "assets/icons/calendar.svg";

View File

@ -1,91 +1,92 @@
import React, { useEffect } from "react";
import { useSelector } from "react-redux";
import { useTimer } from "react-timer-hook";
import StarRating from "@components/StarRating/StarRating";
import { completedTestSelector } from "@redux/quizSlice";
import timer from "assets/images/quiz/timer.png";
import accempt from "assets/images/quiz/accempt.png";
export const QuizPassingInformation = ({ expiryTimestamp, setStartTest }) => {
const { seconds, minutes, isRunning, start, pause, resume, restart } =
useTimer({
expiryTimestamp,
autoStart: false,
onExpire: () => {
console.warn("onExpire called");
},
});
const completedTest = useSelector(completedTestSelector);
const startTesting = () => {
setStartTest(true);
start();
};
useEffect(() => {
if (completedTest) {
const time = new Date();
time.setSeconds(time.getSeconds() + 0); //600 - кол-во секунд для прохождения теста
restart(time, false);
}
}, [completedTest]);
return (
<div className="quiz-passing-information">
<div className="quiz-passing-information__container">
<div className="quiz-passing-information__main">
<div className="quiz-passing-information__specialization">
<StarRating
color={"#52B709"}
countStars={1}
countActiveStars={0.5}
size={61}
/>
<div className="quiz-passing-information__specialization-title">
Junior <br />
разработчик
</div>
</div>
<div className="quiz-passing-information__timer timer-quiz">
<div className="quiz-passing-information__icon">
<img src={timer} alt="" />
</div>
<div className="quiz-passing-information__text">
{completedTest ? "Время вышло" : "Время на прохождение теста:"}{" "}
<br />
<span>
{minutes.toString().padStart(2, "0") +
":" +
seconds.toString().padStart(2, "0")}{" "}
секунд
</span>
</div>
</div>
<div className="quiz-passing-information__attempt">
<div className="quiz-passing-information__icon">
<img src={accempt} alt="" />
</div>
<div className="quiz-passing-information__text">
Попыток прохождения: <br />
<span>1 попытка</span>
</div>
</div>
<div>
{!completedTest && !isRunning && (
<button
className="quiz-passing-information__button btn-green"
onClick={startTesting}
>
Начать
</button>
)}
</div>
</div>
{/* {isRunning && <button className="quiz-passing-information__button quiz-btn" onClick={pause}>Завершить</button>} */}
</div>
</div>
);
};
import React, { useEffect } from "react";
import { useSelector } from "react-redux";
import { useTimer } from "react-timer-hook";
import { completedTestSelector } from "@redux/quizSlice";
import StarRating from "@components/StarRating/StarRating";
import accempt from "assets/images/quiz/accempt.png";
import timer from "assets/images/quiz/timer.png";
export const QuizPassingInformation = ({ expiryTimestamp, setStartTest }) => {
const { seconds, minutes, isRunning, start, pause, resume, restart } =
useTimer({
expiryTimestamp,
autoStart: false,
onExpire: () => {
console.warn("onExpire called");
},
});
const completedTest = useSelector(completedTestSelector);
const startTesting = () => {
setStartTest(true);
start();
};
useEffect(() => {
if (completedTest) {
const time = new Date();
time.setSeconds(time.getSeconds() + 0); //600 - кол-во секунд для прохождения теста
restart(time, false);
}
}, [completedTest]);
return (
<div className="quiz-passing-information">
<div className="quiz-passing-information__container">
<div className="quiz-passing-information__main">
<div className="quiz-passing-information__specialization">
<StarRating
color={"#52B709"}
countStars={1}
countActiveStars={0.5}
size={61}
/>
<div className="quiz-passing-information__specialization-title">
Junior <br />
разработчик
</div>
</div>
<div className="quiz-passing-information__timer timer-quiz">
<div className="quiz-passing-information__icon">
<img src={timer} alt="" />
</div>
<div className="quiz-passing-information__text">
{completedTest ? "Время вышло" : "Время на прохождение теста:"}{" "}
<br />
<span>
{minutes.toString().padStart(2, "0") +
":" +
seconds.toString().padStart(2, "0")}{" "}
секунд
</span>
</div>
</div>
<div className="quiz-passing-information__attempt">
<div className="quiz-passing-information__icon">
<img src={accempt} alt="" />
</div>
<div className="quiz-passing-information__text">
Попыток прохождения: <br />
<span>1 попытка</span>
</div>
</div>
<div>
{!completedTest && !isRunning && (
<button
className="quiz-passing-information__button btn-green"
onClick={startTesting}
>
Начать
</button>
)}
</div>
</div>
{/* {isRunning && <button className="quiz-passing-information__button quiz-btn" onClick={pause}>Завершить</button>} */}
</div>
</div>
);
};

View File

@ -1,35 +1,35 @@
import React from "react";
import StarRating from "@components/StarRating/StarRating";
export const QuizReport = () => {
return (
<div className="report">
<div className="report__row">
<div className="report__column">
<StarRating
color={"#52B709"}
countStars={1}
countActiveStars={0.5}
size={61}
/>
<div className="report__job-title">
Junior <br /> разработчик
</div>
</div>
<div className="report__column">
<div className="report__value">22</div>
<div className="report__text">Правильных ответов</div>
</div>
<div className="report__column">
<div className="report__value report__value_false">02</div>
<div className="report__text">Не правильных ответов</div>
</div>
<div className="report__column">
<div className="report__status-text">Статус:</div>
<div className="report__status">Пройдено!</div>
</div>
</div>
</div>
);
};
import React from "react";
import StarRating from "@components/StarRating/StarRating";
export const QuizReport = () => {
return (
<div className="report">
<div className="report__row">
<div className="report__column">
<StarRating
color={"#52B709"}
countStars={1}
countActiveStars={0.5}
size={61}
/>
<div className="report__job-title">
Junior <br /> разработчик
</div>
</div>
<div className="report__column">
<div className="report__value">22</div>
<div className="report__text">Правильных ответов</div>
</div>
<div className="report__column">
<div className="report__value report__value_false">02</div>
<div className="report__text">Не правильных ответов</div>
</div>
<div className="report__column">
<div className="report__status-text">Статус:</div>
<div className="report__status">Пройдено!</div>
</div>
</div>
</div>
);
};

View File

@ -1,35 +1,36 @@
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { fetchResultTest, selectedTest, selectResult } from "@redux/quizSlice";
import { apiRequest } from "@api/request";
export const Results = () => {
const result = useSelector(selectResult);
const test = useSelector(selectedTest);
const [maxScore, setMaxScore] = useState("");
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchResultTest(test.uuid));
apiRequest(
`/user-questionnaire/get-points-number?user_questionnaire_uuid=${test.uuid}`
).then((res) => setMaxScore(res.sum_point));
}, [apiRequest, dispatch, test]);
return (
<div className={"result _container"}>
{!result ? (
<h1 style={{ display: "block" }}>Ожидайте результата...</h1>
) : (
<div className="result__body">
<div className="result__text">Благодарим за прохождение теста</div>
<div className="result__text">
Ваш Результат: <span className="result__score">{result.score}</span>{" "}
из {maxScore}{" "}
</div>
</div>
)}
</div>
);
};
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { fetchResultTest, selectResult, selectedTest } from "@redux/quizSlice";
import { apiRequest } from "@api/request";
export const Results = () => {
const result = useSelector(selectResult);
const test = useSelector(selectedTest);
const [maxScore, setMaxScore] = useState("");
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchResultTest(test.uuid));
apiRequest(
`/user-questionnaire/get-points-number?user_questionnaire_uuid=${test.uuid}`
).then((res) => setMaxScore(res.sum_point));
}, [apiRequest, dispatch, test]);
return (
<div className={"result _container"}>
{!result ? (
<h1 style={{ display: "block" }}>Ожидайте результата...</h1>
) : (
<div className="result__body">
<div className="result__text">Благодарим за прохождение теста</div>
<div className="result__text">
Ваш Результат: <span className="result__score">{result.score}</span>{" "}
из {maxScore}{" "}
</div>
</div>
)}
</div>
);
};

View File

@ -1,29 +1,29 @@
import React from "react";
import iconSpecialization from "assets/images/partnerProfile/personalBackEnd.svg";
export const SelectedCategory = ({ setSelectedCategory }) => {
return (
<div className="selected-category">
<div className="selected-category__container">
<div className="selected-category__title">
Ваша выбранная <br /> категория
</div>
<div className="selected-category__category">
<div className="selected-category__image">
<img src={iconSpecialization} alt="" />
</div>
<div className="selected-category__title-category">
Backend <br /> разработчики
</div>
</div>
<button
onClick={() => setSelectedCategory(true)}
className="selected-category__button"
>
Заменить специализацию{" "}
</button>
</div>
</div>
);
};
import React from "react";
import iconSpecialization from "assets/images/partnerProfile/personalBackEnd.svg";
export const SelectedCategory = ({ setSelectedCategory }) => {
return (
<div className="selected-category">
<div className="selected-category__container">
<div className="selected-category__title">
Ваша выбранная <br /> категория
</div>
<div className="selected-category__category">
<div className="selected-category__image">
<img src={iconSpecialization} alt="" />
</div>
<div className="selected-category__title-category">
Backend <br /> разработчики
</div>
</div>
<button
onClick={() => setSelectedCategory(true)}
className="selected-category__button"
>
Заменить специализацию{" "}
</button>
</div>
</div>
);
};

View File

@ -1,25 +1,25 @@
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { useNavigate } from "react-router-dom";
import { useSelector, useDispatch } from "react-redux";
import { apiRequest } from "@api/request";
import { HeaderQuiz } from "./HeaderQuiz";
import { Progressbar } from "./ProgressbarQuiz";
import { GetOptionTask } from "./GetOptionTask";
import {
fetchUserAnswersMany,
fetchUserAnswerOne,
fetchGetAnswers,
answersSelector,
selectedTest,
fetchGetAnswers,
fetchUserAnswerOne,
fetchUserAnswersMany,
questionsSelector,
selectedTest,
setAnswers,
setCompleteTest,
} from "@redux/quizSlice";
import { apiRequest } from "@api/request";
import questionIcon from "assets/images/question.png";
import { GetOptionTask } from "./GetOptionTask";
import { HeaderQuiz } from "./HeaderQuiz";
import { Progressbar } from "./ProgressbarQuiz";
import "./quiz.scss";
export const TaskQuiz = () => {