Merge branch 'main' of https://git.itguild.info/apuc/guild_front into fixed-pages

This commit is contained in:
MaxOvs19
2023-12-11 14:16:52 +03:00
66 changed files with 521 additions and 797 deletions

View File

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

View File

@@ -5,27 +5,33 @@
padding: 50px 0 35px 56px;
margin-top: 40px;
display: flex;
position: relative;
@media (max-width: 1000px) {
flex-direction: column;
padding: 25px;
margin-top: 0;
padding: 0;
@media (max-width: 1400px) {
margin-top: 100px;
}
@media (max-width: 900px) {
flex-direction: column-reverse;
padding: 20px;
margin-top: 100px;
}
}
&__info {
margin-right: 115px;
@media (max-width: 1000px) {
@media (max-width: 900px) {
order: 3;
flex-direction: column;
margin-bottom: 20px;
}
h3 {
font-weight: 500;
font-size: 30px;
line-height: 32px;
margin-bottom: 20px;
text-align: center;
}
p {
@@ -35,7 +41,7 @@
font-size: 16px;
line-height: 30px;
@media (max-width: 1000px) {
@media (max-width: 900px) {
max-width: none;
margin: 15px 25px;
}
@@ -46,7 +52,7 @@
}
}
@media (max-width: 1000px) {
@media (max-width: 900px) {
margin-right: 0;
display: flex;
align-items: center;
@@ -70,7 +76,7 @@
font-size: 15px;
line-height: 18px;
@media (max-width: 1000px) {
@media (max-width: 900px) {
max-width: 550px;
}
}
@@ -109,9 +115,8 @@
}
}
@media (max-width: 1000px) {
@media (max-width: 900px) {
order: 2;
margin-bottom: 55px;
}
}
@@ -120,7 +125,7 @@
right: 48px;
top: -90px;
@media (max-width: 1000px) {
@media (max-width: 900px) {
order: 1;
position: inherit;
right: inherit;

View File

@@ -53,7 +53,7 @@ export const AuthBox = ({ title }) => {
data: formData,
}).then((res) => {
if (!res.access_token) {
setError("Введены некоректные данные для входа");
setError("Введены некорректные данные для входа");
setModalError(true);
dispatch(loading(false));
} else {
@@ -79,14 +79,16 @@ export const AuthBox = ({ title }) => {
<h2 className="auth-box__header">
Вход <img src={authHead} alt="authImg" />
</h2>
<div className="auth-box__title">
<span>{title}</span>
</div>
{title && (
<div className="auth-box__title">
<span>{title}</span>
</div>
)}
<form ref={ref} className="auth-box__form">
<label htmlFor="login">Ваш email *</label>
<label htmlFor="login">Ваш e-mail</label>
<input id="login" type="text" name="username" placeholder="Логин" />
<label htmlFor="password">Ваш пароль*</label>
<label htmlFor="password">Ваш пароль</label>
<div className="inputWrapper">
<input
id="password"
@@ -129,7 +131,7 @@ export const AuthBox = ({ title }) => {
<ModalRegistration active={modalReg} setActive={setModalReg} />
</div>
<p className="auth-box__registration">
У вас еще нет аккаунта? &nbsp;
У вас ещё нет аккаунта? &nbsp;
<span
onClick={(e) => {
e.preventDefault();

View File

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

View File

@@ -61,9 +61,7 @@ const Calendar = () => {
</div>
<div>
<Link to="/report">
<button className="calendar__btn">
Заполнить отчет за день
</button>
<button className="calendar__btn">Заполнить отчет</button>
</Link>
</div>
</div>

View File

@@ -125,6 +125,10 @@
margin: 50px 0 0;
text-transform: capitalize;
@media (max-width: 500px) {
font-size: 1.7em;
}
span {
font-weight: 100;
font-style: normal;

View File

@@ -13,7 +13,7 @@
display: flex;
justify-content: space-between;
@media (max-width: 560px) {
@media (max-width: 760px) {
flex-direction: column;
row-gap: 15px;
}
@@ -21,20 +21,13 @@
&-info {
display: flex;
@media (max-width: 685px) {
font-size: 7px;
}
@media (max-width: 560px) {
@media (max-width: 760px) {
font-size: 10px;
}
@media (max-width: 560px) {
justify-content: center;
}
.calendar__hours {
margin: 0 10px;
margin: 0 5px;
line-height: 0;
font-weight: 500;
display: flex;
@@ -45,18 +38,14 @@
&-switcher {
display: flex;
@media (max-width: 590px) {
font-size: 8px;
}
@media (max-width: 560px) {
@media (max-width: 760px) {
justify-content: center;
font-size: 12px;
}
}
h3 {
font-size: 2.5em;
font-size: 2.2em;
font-weight: 400;
font-style: normal;
letter-spacing: normal;
@@ -165,6 +154,11 @@
justify-content: center;
font-weight: 500;
font-size: 12px;
@media (max-width: 500px) {
font-size: 10px;
font-weight: 400;
}
}
img {
@@ -182,27 +176,25 @@
}
@media (max-width: 1200px) {
width: 90px;
height: 40px;
width: 110px;
}
@media (max-width: 968px) {
width: 62px;
height: 40px;
width: 90px;
font-size: 11px;
}
@media (max-width: 680px) {
width: 70px;
font-size: 10px;
@media (max-width: 610px) {
width: auto;
height: auto;
}
}
@media (max-width: 610px) {
width: 55px;
height: 45px;
@media (max-width: 550px) {
width: 60px;
height: 35px;
}
@media (max-width: 480px) {
@media (max-width: 450px) {
width: 45px;
height: 35px;
}
@@ -294,12 +286,11 @@
.select {
border-radius: 5px;
border: 1px solid #c4c4c4;
border: 2px solid #c4c4c4;
box-shadow: 0 0 59px rgba(44, 44, 44, 0.05);
padding: 5px 8px;
cursor: pointer;
text-align: center;
min-width: 350px;
}
.close {

View File

@@ -174,7 +174,7 @@ const Candidate = () => {
<div className="candidate__works works">
<div className="works__body">
<div className="works__body__info">
<p>Страница портфолио кода разработчика</p>
<p>Портфолио разработчика</p>
</div>
<div className="works__item item-works">
<Link to="/" className="item-works__body">

View File

@@ -12,7 +12,7 @@ export const AuthHeader = () => {
<div className="auth-header">
<div className="auth-header__logo">
<h3>
itguild.<span>аутстафинг ИТ специалистов</span>
itguild.<span>аутстаффинг IT-специалистов</span>
</h3>
</div>
<div className="auth-header__navigation">

View File

@@ -3,7 +3,7 @@ import React from "react";
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 logo from "assets/images/logo/ITguild.svg";
import "./footer.scss";
@@ -27,21 +27,19 @@ export const Footer = () => {
<div className="footer__bottom">
<div className="footer__social">
<div className="footer__social__icons">
<a>
<img src={vk} alt="vk" />
<a href="https://www.vk.com/">
<img src={vk} alt="vk" width={24} />
</a>
<a>
<img src={tg} alt="tg" />
<a href="https://www.telegram.org/">
<img src={tg} alt="tg" width={24} />
</a>
</div>
<p>Войти в команду</p>
</div>
<div className="footer__info">
<div className="footer__mail">
<a>
<img src={email} alt="email" />
</a>
<p>office@itguild.info</p>
<img src={email} alt="email" />
<a href="mailto:office@itguild.info">office@itguild.info</a>
</div>
<a className="footer__policy">Политика конфиденциальности</a>
</div>

View File

@@ -79,11 +79,11 @@ footer {
&__mail {
display: flex;
align-items: center;
column-gap: 13px;
column-gap: 5px;
p {
a {
font-weight: 400;
font-size: 12px;
font-size: 14px;
line-height: 16px;
color: #5b6871;
}
@@ -91,7 +91,7 @@ footer {
&__policy {
font-weight: 400;
font-size: 10px;
font-size: 13px;
line-height: 16px;
color: #5b6871;
margin-left: 150px;
@@ -108,6 +108,7 @@ footer {
&__copyright {
margin-left: auto;
font-size: 13px;
@media (max-width: 910px) {
min-width: 142px;

View File

@@ -98,7 +98,7 @@ const Description = ({ onLoadMore }) => {
<div className="description__footer">
<div className="description__footer-btn">
{candidatesListArr && (
<button onClick={() => onLoadMore(2)}>Загрузить еще</button>
<button onClick={() => onLoadMore(2)}>Загрузить ещё</button>
)}
</div>
</div>

View File

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

View File

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

View File

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

View File

@@ -17,7 +17,7 @@ export const ModalErrorLogin = ({ active, setActive, title }) => {
setActive(false);
}}
>
Попробовать еще раз
Попробовать ещё раз
</BaseButton>
<span onClick={() => setActive(false)} className="exit"></span>
</ModalLayout>

View File

@@ -104,11 +104,11 @@ export const ModalRegistration = ({ active, setActive }) => {
};
return (
<ModalLayout active={active} setActive={closeModal} styles={"registration"}>
<div className="registration-body__left">
<div className="registration-body__main">
<h2>
Подключайтесь к <p>itguild.</p>
Подключайтесь к <p>ITguild</p>
</h2>
<p className="registration-body__left-desc">
<p className="registration-body__main-desc">
Зарегистрируйтесь и начните работу уже сегодня
</p>
@@ -132,7 +132,7 @@ export const ModalRegistration = ({ active, setActive }) => {
value={inputsValue.userName}
placeholder="Имя"
/>
{inputsError.name && <span>Минимум 2 символов</span>}
{inputsError.name && <span>Минимум 2 символа</span>}
</div>
<div className="inputContainer">
<h5>E-mail</h5>
@@ -153,13 +153,11 @@ export const ModalRegistration = ({ active, setActive }) => {
value={inputsValue.email}
placeholder="Почта"
/>
{inputsError.email && <span>Введите коректный email</span>}
{inputsError.email && <span>Введите корректный e-mail</span>}
</div>
</div>
<div className="input-body__box">
{/*<h5>Название компании</h5>*/}
{/*<input></input>*/}
<div className="inputContainer">
<h5>Пароль</h5>
<input
@@ -181,8 +179,30 @@ export const ModalRegistration = ({ active, setActive }) => {
/>
{inputsError.password && <span>Минимум 6 символов</span>}
</div>
<div className="inputContainer">
<h5>Повторите пароль</h5>
<input
className={inputsError.password ? "error" : ""}
type="password"
onChange={(e) => {
setInputsError({
name: false,
email: false,
password: false,
});
setInputsValue((prevValue) => ({
...prevValue,
password: e.target.value,
}));
}}
value={inputsValue.password}
placeholder="Пароль"
/>
{inputsError.password && <span>Минимум 6 символов</span>}
</div>
</div>
</div>
<div className="button-box">
{loader ? (
<Loader style={"green"} />
@@ -202,9 +222,9 @@ export const ModalRegistration = ({ active, setActive }) => {
{/*</h5>*/}
</div>
</div>
<div className="registration-body__right">
<div className="registration-body__about">
<h4>Отказ от специалиста в любой момент</h4>
<div className="registration-body__right-text">
<div className="registration-body__about-text">
<img src={anyMoment}></img>
<p>
Поменяйте, откажитесь или возьмите еще специалиста в любой момент
@@ -212,7 +232,7 @@ export const ModalRegistration = ({ active, setActive }) => {
</p>
</div>
<h4>100% постоплата</h4>
<div className="registration-body__right-text">
<div className="registration-body__about-text">
<img src={doc}></img>
<p>
Договор не подразумевает какуюлибо оплату до того, как вы
@@ -220,7 +240,7 @@ export const ModalRegistration = ({ active, setActive }) => {
</p>
</div>
<h4>Есть вопросы?</h4>
<div className="registration-body__right-text">
<div className="registration-body__about-text">
<img src={telegramLogo}></img>
<p>Напишите нам в Телеграм. Мы с удовольствием ответим!</p>
</div>

View File

@@ -6,12 +6,10 @@
justify-content: space-between;
border: 1px solid #dde2e4;
border-radius: 8px;
width: 1088px;
height: 515px;
&-body {
&__left {
padding: 33px 0 30px 77px;
&__main {
padding-left: 30px;
h2 {
font-weight: 500;
@@ -51,6 +49,7 @@
font-weight: 400;
font-size: 15px;
line-height: 18px;
margin-left: 10px;
}
input {
@@ -112,9 +111,9 @@
}
}
&__right {
&__about {
border-left: 1px solid #f1f1f1;
padding: 30px 32px 46px 25px;
padding: 20px;
display: flex;
flex-direction: column;
justify-content: space-between;

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
.resetPassword {
width: 370px;
width: 280px;
position: relative;
&__close {
@@ -13,7 +13,7 @@
&__title {
font-size: 20px;
text-align: center;
margin-bottom: 15px;
margin-bottom: 20px;
}
&__email {
display: flex;
@@ -24,6 +24,7 @@
h5 {
font-size: 16px;
margin-bottom: 10px;
align-self: flex-start;
}
input {
@@ -54,11 +55,9 @@
color: #ffffff;
font-weight: 500;
font-size: 15px;
letter-spacing: normal;
line-height: 32px;
text-align: center;
border: 2px solid #6aaf5c;
transition: 0.3s;
margin-top: 15px;
}
.error {

View File

@@ -409,7 +409,7 @@ export const TrackerModal = ({
{/* />*/}
{/*</div>*/}
<p className="selectPerson__info">
Выберите пользователя в проекте или добавьте по e- mail
Выберите пользователя в проекте или добавьте по e-mail
</p>
<div className="invite__blocks">
<div className="addPersonBlock">
@@ -468,7 +468,7 @@ export const TrackerModal = ({
<div className="input-container invitePersonBlock__input">
<input
className="name-project"
placeholder="email"
placeholder="e-mail"
type="email"
/>
</div>

View File

@@ -742,7 +742,7 @@
.exit {
cursor: pointer;
position: absolute;
top: 36px;
top: 20px;
right: 20px;
width: 13px;
height: 13px;

View File

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

View File

@@ -1,7 +1,7 @@
.notification {
border-radius: 40px;
background: linear-gradient(180deg, #FFF 0%, #EBEBEB 100%);
padding: 20px 82px 17px 27px;
padding: 15px 60px 15px 15px;
position: fixed;
bottom: 25px;
right: 25px;
@@ -13,7 +13,7 @@
align-items: center;
h2 {
max-width: 194px;
max-width: 210px;
font-weight: 500;
font-size: 16px;
margin-bottom: 0;
@@ -27,8 +27,8 @@
&__close {
cursor: pointer;
position: absolute;
top: 15px;
right: 25px;
top: 10px;
right: 20px;
width: 15px;
height: 15px;
}

View File

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

View File

@@ -89,7 +89,7 @@ export const ProfileCalendar = () => {
<ProfileBreadcrumbs
links={[
{ name: "Главная", link: "/profile" },
{ name: "Ваша отчетность", link: "/profile/calendar" },
{ name: "Отчеты", link: "/profile/calendar" },
]}
/>
<h2 className="summary__title">Ваши отчеты</h2>
@@ -110,11 +110,9 @@ export const ProfileCalendar = () => {
<Link to="/report">
<button
className="calendar__btn"
onClick={() => {
dispatch(setReportDate(""));
}}
onClick={() => dispatch(setReportDate(""))}
>
Заполнить отчет за день
Заполнить отчет
</button>
</Link>
</div>

View File

@@ -205,11 +205,11 @@ export const ProfileCalendarComponent = React.memo(
<div className="calendar-component">
<div className="calendar-component__header">
<div className="calendar-component__header-info">
<h3>Мои отчеты:</h3>
<h3>Мои отчеты за </h3>
<p className="calendar__hours">
{month}&nbsp;
<span>
{totalHours} {hourOfNum(totalHours)}{" "}
({totalHours} {hourOfNum(totalHours)})
</span>
</p>
</div>
@@ -316,13 +316,15 @@ export const ProfileCalendarComponent = React.memo(
? `${getCorrectDate(startDate)} - ${getCorrectDate(endDate)}`
: `${getCorrectDate(endDate)} - ${getCorrectDate(startDate)}`
: activePeriod
? "Выберите начало диапазона"
? "Выберите диапазон на календаре"
: "Выбрать диапазон"}
</span>
<span>
{totalRangeHours
? `${totalRangeHours} ${hourOfNum(totalRangeHours)}`
: "0 часов"}
: endDate
? "0 часов"
: ""}
</span>
{endDate && (
<BaseButton

View File

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

View File

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

View File

@@ -125,8 +125,8 @@ const ReportForm = () => {
<ProfileBreadcrumbs
links={[
{ name: "Главная", link: "/profile" },
{ name: "Ваша отчетность", link: "/profile/calendar" },
{ name: "Страница добавления нового отчета", link: "/report" },
{ name: "Отчеты", link: "/profile/calendar" },
{ name: "Добавить отчет", link: "/report" },
]}
/>
<h2 className="summary__title">
@@ -180,9 +180,7 @@ const ReportForm = () => {
<p className="report-form__task-title--description">
Краткое описание задачи
</p>
<p className="report-form__task-title--hours">
Количество часов
</p>
<p className="report-form__task-title--hours">Кол-во часов</p>
</div>
{inputs.map((input, index) => {
@@ -260,7 +258,7 @@ const ReportForm = () => {
<p className="addMore" onClick={addInput}>
+
</p>
<span>Добавить еще </span>
<span>Добавить задачу</span>
</div>
</div>
</div>
@@ -299,7 +297,7 @@ const ReportForm = () => {
{isFetching ? <Loader /> : "Отправить"}
</button>
<p className="report-form__footer-text">
Всего за день :{" "}
Всего за день:{" "}
<span>
{totalHours} {hourOfNum(totalHours)}
</span>

View File

@@ -54,7 +54,6 @@
font-weight: 700;
font-style: normal;
letter-spacing: normal;
line-height: 48.74px;
text-align: left;
@media (max-width: 555px) {
@@ -75,7 +74,7 @@
@media (max-width: 555px) {
margin-top: 25px;
margin-bottom: 15px;
margin-bottom: 10px;
}
}
}
@@ -115,12 +114,11 @@
font-weight: 700;
font-style: normal;
letter-spacing: normal;
line-height: 48.74px;
width: 12px;
}
&-list {
margin-top: 40px;
margin-top: 30px;
display: flex;
align-items: center;
@@ -146,7 +144,7 @@
&-header {
display: flex;
justify-content: flex-start;
margin-top: 40px;
margin-top: 20px;
margin-left: 50px;
p {
@@ -156,7 +154,7 @@
letter-spacing: normal;
line-height: normal;
text-align: left;
margin-bottom: 26px;
margin-bottom: 10px;
white-space: nowrap;
@media (max-width: 450px) {
@@ -276,6 +274,7 @@
margin-left: 28px;
display: flex;
align-items: center;
justify-content: center;
.addMore {
display: flex;
@@ -285,9 +284,9 @@
width: 38px;
height: 38px;
background: #e8e8e8;
margin-bottom: 0;
border-radius: 50px;
font-size: 32px;
cursor: pointer;
}
span {
@@ -297,7 +296,8 @@
letter-spacing: normal;
line-height: normal;
text-align: left;
margin-left: 20px;
margin-left: 10px;
cursor: pointer;
}
}
@@ -352,6 +352,7 @@
&__footer {
display: flex;
flex-direction: column-reverse;
align-items: center;
margin-top: 20px;
@@ -380,16 +381,13 @@
&-text {
font-family: "GT Eesti Pro Display";
font-size: 1.9em;
font-weight: 600;
font-style: normal;
letter-spacing: normal;
line-height: 22.38px;
text-align: left;
margin-left: 40px;
margin-bottom: 0;
margin-bottom: 20px;
span {
font-weight: 100;
font-weight: 600;
}
}

View File

@@ -2,7 +2,7 @@ import React, { useState } from "react";
import { Link } from "react-router-dom";
import arrow from "assets/icons/sideBarArrow.svg";
import LogoITguild from "assets/images/logo/LogoITguild.svg";
import ITguild from "assets/images/logo/ITguild.svg";
import "./sidebar.scss";
@@ -37,13 +37,13 @@ export const SideBar = () => {
</div>
<p className="outstaffing">
<img src={arrow}></img>
2023 © Outstaffing
{new Date().getFullYear()} © Outstaffing
</p>
</div>
<div className={active ? "auth-body active" : "auth-body"}>
<div className="auth-body__title">
<img src={LogoITguild}></img>
<img src={ITguild}></img>
</div>
<ul className="auth-body__navigation">
<li>

View File

@@ -125,6 +125,10 @@
&__title {
display: flex;
margin-top: 24px;
img {
width: 160px;
}
}
&__navigation {
@@ -143,7 +147,7 @@
&__politic {
margin-top: 42px;
font-size: 12px;
font-size: 14px;
line-height: 22px;
color: #000000;
}
@@ -156,7 +160,7 @@
line-height: 33px;
}
p {
font-size: 12px;
font-size: 14px;
}
}
@@ -190,6 +194,6 @@
@media (max-width: 1375px) {
left: 0;
width: 100%;
height: 605px;
height: 705px;
}
}

View File

@@ -81,7 +81,7 @@ export const SliderWorkers = ({ title, titleInfo, subTitle }) => {
</Slider>
{Boolean(subTitle) ? (
<div className="slider-workers__description">
<h2>Дополните свою команду опытными ИТ-специалистами</h2>
<h2>Дополните Вашу команду опытными IT-специалистами</h2>
<p>
Даём финансовые, юридические и кадровые гарантии, предоставляем
SLA и отвечаем за работу команды. Вам не нужно искать, оформлять

View File

@@ -46,11 +46,14 @@
padding: 8px 26px;
font-weight: 400;
font-size: 16px;
line-height: 32px;
@media (max-width: 450px) {
max-width: 180px;
}
}
span {
margin-left: 55px;
margin-left: 20px;
font-weight: 400;
font-size: 16px;
line-height: 32px;

View File

@@ -47,7 +47,7 @@ export const Instruction = () => {
<img src={comment} alt="" />
</div>
<div className="instruction__text instruction__text_info">
Количество вопросов в тесте: <span>{countQuestions}</span>
Вопросов в тесте: <span>{countQuestions}</span>
</div>
</div>
</>