3
src/assets/icons/arrows/arrowCreateTask.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.625 3.59082L0.485659 0.079101L6.76434 0.0791015L3.625 3.59082Z" fill="#6F6F6F"/>
|
||||
</svg>
|
After Width: | Height: | Size: 192 B |
10
src/assets/icons/arrows/arrowRightCreateTask.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1685_1274)">
|
||||
<path d="M14.6575 7.35159L11.4757 4.16982C11.3614 4.03635 11.1606 4.0208 11.0271 4.13512C10.8936 4.24941 10.8781 4.45028 10.9924 4.58374C11.0031 4.59618 11.0147 4.6078 11.0271 4.61844L13.6648 7.25931H1.06817C0.892458 7.25931 0.75 7.40176 0.75 7.5775C0.75 7.75323 0.892458 7.89567 1.06817 7.89567H13.6648L11.0271 10.5333C10.8936 10.6476 10.8781 10.8485 10.9924 10.982C11.1067 11.1154 11.3076 11.131 11.441 11.0167C11.4535 11.006 11.4651 10.9944 11.4757 10.982L14.6575 7.80018C14.7808 7.67613 14.7808 7.4757 14.6575 7.35159Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1685_1274">
|
||||
<rect width="14" height="14" fill="white" transform="translate(0.75 0.576172)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 825 B |
14
src/assets/icons/authHead.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<svg width="45" height="46" viewBox="0 0 45 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1687_883)">
|
||||
<path d="M36.5629 8.9648C35.0096 8.9648 33.7504 10.224 33.7504 11.7773V8.02727C33.7504 6.47398 32.4912 5.21478 30.9379 5.21478C29.3847 5.21478 28.1255 6.47398 28.1255 8.02727V4.27734C28.1255 2.72405 26.8662 1.46484 25.313 1.46484C23.7597 1.46484 22.5005 2.72405 22.5005 4.27734V8.02736C22.5005 6.47407 21.2413 5.21487 19.688 5.21487C18.1347 5.21487 16.8755 6.47407 16.8755 8.02736V27.7148L10.3655 24.4598C9.71469 24.1343 8.99697 23.9649 8.26924 23.9648C6.80912 23.9648 5.62549 25.1484 5.62549 26.6085V26.6198C5.624 27.3229 5.9027 27.9977 6.3999 28.4948L18.5236 40.6185C21.0709 43.1632 24.5248 44.5917 28.1255 44.5897C34.3386 44.5897 39.3754 39.5529 39.3754 33.3397V11.7773C39.3754 10.224 38.1162 8.9648 36.5629 8.9648Z" fill="#FFCC80"/>
|
||||
<path d="M22.5 21.1525C23.0178 21.1525 23.4376 20.7327 23.4376 20.215V2.19629C22.8383 2.72152 22.4963 3.48072 22.5 4.27754V21.1525Z" fill="#FFB74D"/>
|
||||
<path d="M28.125 21.1526C28.6428 21.1526 29.0626 20.7328 29.0626 20.215V5.94629C28.4633 6.47152 28.1213 7.23072 28.125 8.02753V21.1526Z" fill="#FFB74D"/>
|
||||
<path d="M33.75 11.7775V21.1525C34.2678 21.1525 34.6876 20.7328 34.6876 20.215V9.69629C34.0883 10.2215 33.7463 10.9807 33.75 11.7775Z" fill="#FFB74D"/>
|
||||
<path d="M28.1254 45.5273C24.2737 45.5385 20.5777 44.0079 17.8617 41.2766L5.73788 29.1529C4.33682 27.751 4.33743 25.4787 5.73937 24.0777C6.41059 23.4069 7.32017 23.0292 8.26912 23.0273C9.14179 23.028 10.0023 23.2309 10.7835 23.6198L15.9378 26.1979V8.0273C15.9389 5.95625 17.6187 4.27816 19.6898 4.2793C20.3474 4.27965 20.9933 4.45288 21.5628 4.78168V4.27728C21.5629 2.20632 23.2418 0.527344 25.3129 0.527344C27.384 0.527344 29.063 2.20632 29.063 4.27737V4.78177C30.8565 3.74624 33.15 4.36077 34.1856 6.15435C34.5144 6.72388 34.6876 7.36979 34.6879 8.02739V8.53179C36.4815 7.49627 38.775 8.1108 39.8105 9.90438C40.1393 10.4739 40.3126 11.1198 40.3129 11.7774V33.3398C40.3046 40.0673 34.8529 45.519 28.1254 45.5273ZM8.26912 24.9023C7.32263 24.9049 6.55755 25.6744 6.56027 26.6209C6.56159 27.0734 6.74176 27.5071 7.06169 27.8273L19.1873 39.951C21.5524 42.3294 24.7712 43.6624 28.1254 43.6522C33.8178 43.645 38.4307 39.0322 38.4379 33.3398V11.7773C38.4379 10.7418 37.5984 9.90236 36.5629 9.90236C35.5274 9.90236 34.6879 10.7418 34.6879 11.7773V20.2148C34.6879 20.7326 34.2682 21.1523 33.7504 21.1523C33.2326 21.1523 32.8129 20.7326 32.8129 20.2148V8.0273C32.8129 6.99177 31.9734 6.15233 30.9379 6.15233C29.9024 6.15233 29.063 6.99177 29.063 8.0273V20.2148C29.063 20.7326 28.6432 21.1523 28.1254 21.1523C27.6077 21.1523 27.1879 20.7326 27.1879 20.2148V4.27737C27.1879 3.24184 26.3485 2.4024 25.3129 2.4024C24.2774 2.4024 23.438 3.24184 23.438 4.27737V20.2148C23.438 20.7326 23.0182 21.1523 22.5004 21.1523C21.9827 21.1523 21.5629 20.7326 21.5629 20.2148V8.0273C21.5629 6.99177 20.7235 6.15233 19.6879 6.15233C18.6524 6.15233 17.813 6.99177 17.813 8.0273V27.7148C17.813 28.2325 17.3932 28.6523 16.8754 28.6522C16.7296 28.6522 16.5858 28.6182 16.4555 28.5529L9.93799 25.2979C9.41952 25.0394 8.84841 24.9039 8.26912 24.9023Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1687_883">
|
||||
<rect width="45" height="45" fill="white" transform="translate(0 0.527344)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
17
src/assets/icons/createTaskCalendar.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1685_1261)">
|
||||
<path d="M21.1356 2.64549H17.7042V1.28906C17.7042 0.892136 17.3823 0.570312 16.9854 0.570312C16.5885 0.570312 16.2667 0.892136 16.2667 1.28906V2.64549H10.3263V1.28906C10.3263 0.892136 10.0045 0.570312 9.60753 0.570312C9.2106 0.570312 8.88878 0.892136 8.88878 1.28906V2.64549H5.45734C4.55259 2.64549 3.81647 3.38161 3.81647 4.28637V13.2309C3.81647 13.2641 3.80822 13.2971 3.79225 13.3269L1.39841 17.8079C1.12396 18.3213 1.13888 18.9258 1.43806 19.4249C1.73743 19.9241 2.2635 20.2222 2.84556 20.2222H3.12474V21.3904C3.12474 22.2951 3.86086 23.0312 4.76579 23.0312H20.6745C21.5794 23.0312 22.3155 22.2951 22.3155 21.3904V14.5683L22.6087 13.9707C22.7184 13.7472 22.7765 13.4971 22.7765 13.2478V4.28637C22.7765 3.38161 22.0404 2.64549 21.1356 2.64549ZM2.67096 18.6859C2.64411 18.6408 2.6213 18.5694 2.66622 18.4854L5.05989 14.0048C5.18693 13.7677 5.25397 13.5001 5.25397 13.2309V4.28637C5.25397 4.17424 5.34521 4.08299 5.45734 4.08299H8.88878V4.74752C8.88878 5.14445 9.2106 5.46627 9.60753 5.46627C10.0045 5.46627 10.3263 5.14445 10.3263 4.74752V4.08299H16.2667V4.74752C16.2667 5.14445 16.5885 5.46627 16.9854 5.46627C17.3823 5.46627 17.7042 5.14445 17.7042 4.74752V4.08299H21.1356C21.2477 4.08299 21.339 4.17424 21.339 4.28637V13.2478C21.339 13.2792 21.332 13.3093 21.3183 13.3374L18.7014 18.6708C18.6674 18.74 18.5958 18.7847 18.5187 18.7847H2.84556C2.75027 18.7847 2.69816 18.731 2.67096 18.6859ZM20.878 21.3904C20.878 21.5025 20.7868 21.5938 20.6745 21.5938H4.76579C4.65349 21.5938 4.56224 21.5025 4.56224 21.3904V20.2222H18.5187C19.1401 20.2222 19.7183 19.8618 19.9919 19.304L20.878 17.498V21.3904Z" fill="black"/>
|
||||
<path d="M9.37711 10.7148H7.99365C7.59673 10.7148 7.2749 11.0367 7.2749 11.4336C7.2749 11.8305 7.59673 12.1523 7.99365 12.1523H9.37711C9.77403 12.1523 10.0959 11.8305 10.0959 11.4336C10.0959 11.0367 9.77403 10.7148 9.37711 10.7148Z" fill="black"/>
|
||||
<path d="M13.9883 10.7148H12.605C12.2081 10.7148 11.8862 11.0367 11.8862 11.4336C11.8862 11.8305 12.2081 12.1523 12.605 12.1523H13.9883C14.3852 12.1523 14.707 11.8305 14.707 11.4336C14.707 11.0367 14.3852 10.7148 13.9883 10.7148Z" fill="black"/>
|
||||
<path d="M18.5993 10.7148H17.2158C16.8189 10.7148 16.4971 11.0367 16.4971 11.4336C16.4971 11.8305 16.8189 12.1523 17.2158 12.1523H18.5993C18.9962 12.1523 19.318 11.8305 19.318 11.4336C19.318 11.0367 18.9962 10.7148 18.5993 10.7148Z" fill="black"/>
|
||||
<path d="M8.2241 15.0957H6.84082C6.44389 15.0957 6.12207 15.4175 6.12207 15.8145C6.12207 16.2114 6.44389 16.5332 6.84082 16.5332H8.2241C8.62103 16.5332 8.94285 16.2114 8.94285 15.8145C8.94285 15.4175 8.62103 15.0957 8.2241 15.0957Z" fill="black"/>
|
||||
<path d="M12.8356 15.0957H11.4521C11.0552 15.0957 10.7334 15.4175 10.7334 15.8145C10.7334 16.2114 11.0552 16.5332 11.4521 16.5332H12.8356C13.2325 16.5332 13.5544 16.2114 13.5544 15.8145C13.5544 15.4175 13.2325 15.0957 12.8356 15.0957Z" fill="black"/>
|
||||
<path d="M17.4468 15.0957H16.0635C15.6665 15.0957 15.3447 15.4175 15.3447 15.8145C15.3447 16.2114 15.6665 16.5332 16.0635 16.5332H17.4468C17.8437 16.5332 18.1655 16.2114 18.1655 15.8145C18.1655 15.4175 17.8437 15.0957 17.4468 15.0957Z" fill="black"/>
|
||||
<path d="M7.7627 8.46387H18.8298C19.2267 8.46387 19.5485 8.14204 19.5485 7.74512C19.5485 7.34819 19.2267 7.02637 18.8298 7.02637H7.7627C7.36577 7.02637 7.04395 7.34819 7.04395 7.74512C7.04395 8.14204 7.36577 8.46387 7.7627 8.46387Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1685_1261">
|
||||
<rect width="23" height="23" fill="white" transform="translate(0.75 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
3
src/assets/icons/passwordIcon.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="23" height="24" viewBox="0 0 23 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.71013 5.69514C8.6174 5.31138 8.85422 4.92619 9.23656 4.83488C13.7847 3.74066 18.3427 5.8963 22.791 11.2347C23.0107 11.4987 23.0121 11.8824 22.7924 12.1464C21.7224 13.4403 20.5783 14.6045 19.3927 15.6031C19.2586 15.7158 19.096 15.7714 18.9334 15.7714C18.7308 15.7714 18.5296 15.6844 18.3884 15.5175C18.133 15.2165 18.173 14.7671 18.474 14.5117C19.4541 13.6857 20.4056 12.7384 21.3087 11.6913C17.3655 7.13747 13.4209 5.30139 9.57039 6.22157C9.17093 6.31287 8.80143 6.07748 8.71013 5.69514ZM11.3223 8.05764C11.2695 8.44854 11.542 8.80805 11.9315 8.86084C13.1997 9.03203 14.2027 10.0364 14.3753 11.3018C14.4224 11.6599 14.7291 11.9195 15.08 11.9195C15.1114 11.9195 15.1442 11.9181 15.177 11.9138C15.5665 11.861 15.8404 11.5015 15.7876 11.1106C15.5308 9.20893 14.0243 7.70241 12.1226 7.44562C11.7374 7.39426 11.3736 7.66675 11.3223 8.05764ZM22.7482 21.886C23.0264 22.1642 23.0264 22.6164 22.7482 22.8946C22.6084 23.0344 22.4258 23.1043 22.2431 23.1043C22.0605 23.1043 21.8779 23.0344 21.7381 22.896L16.4068 17.5647C14.7861 18.3936 13.1612 18.8301 11.5391 18.8301C7.76998 18.8301 4.00795 16.5989 0.295862 12.1492C0.0761609 11.8853 0.0747342 11.5001 0.294435 11.2362C1.98214 9.20608 3.69695 7.65819 5.40463 6.56111L0.340088 1.49657C0.0618946 1.21838 0.0618946 0.766135 0.340088 0.487942C0.61828 0.209749 1.07052 0.209749 1.34872 0.487942L22.7482 21.886ZM8.69016 11.6913C8.69016 13.2648 9.96984 14.5445 11.5434 14.5445C12.0556 14.5445 12.552 14.3962 12.9857 14.1422L9.09104 10.2475C8.83567 10.6812 8.69016 11.172 8.69016 11.6913ZM15.3525 16.509L14.0172 15.1737C13.2996 15.6816 12.4336 15.9712 11.5434 15.9712C9.18377 15.9712 7.26353 14.0509 7.26353 11.6913C7.26353 10.7882 7.54885 9.93509 8.05959 9.21607L6.43465 7.59113C4.89532 8.53128 3.33316 9.89086 1.77813 11.6913C6.38757 17.0169 10.8415 18.6004 15.3525 16.509Z" fill="black"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/assets/images/mock/avatarMoсk3.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
src/assets/images/mock/avatarMoсk4.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
src/assets/images/mock/avatarMoсk5.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
src/assets/images/mock/avatarMoсk6.png
Normal file
After Width: | Height: | Size: 11 KiB |
@ -12,7 +12,8 @@ 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 authHead from "assets/icons/authHead.svg";
|
||||
import eyePassword from "assets/icons/passwordIcon.svg";
|
||||
|
||||
import "./authBox.scss";
|
||||
|
||||
@ -27,6 +28,7 @@ export const AuthBox = ({ title }) => {
|
||||
const [error, setError] = useState(null);
|
||||
const [modalError, setModalError] = useState(false);
|
||||
const [modalReg, setModalReg] = useState(false);
|
||||
const [showPassword, setShowPassword] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (!localStorage.getItem("auth_token")) {
|
||||
@ -73,23 +75,30 @@ export const AuthBox = ({ title }) => {
|
||||
return (
|
||||
<div className="auth-box">
|
||||
<h2 className="auth-box__header">
|
||||
Войти в <span>систему</span>
|
||||
Вход <img src={authHead} alt="authImg" />
|
||||
</h2>
|
||||
<div className="auth-box__title">
|
||||
<img src={ellipse} alt="." />
|
||||
<span>{title}</span>
|
||||
</div>
|
||||
<form ref={ref} className="auth-box__form">
|
||||
<label htmlFor="login">Ваш логин:</label>
|
||||
<label htmlFor="login">Ваш email *</label>
|
||||
<input id="login" type="text" name="username" placeholder="Логин" />
|
||||
|
||||
<label htmlFor="password">Пароль:</label>
|
||||
<input
|
||||
id="password"
|
||||
type="password"
|
||||
name="password"
|
||||
placeholder="Пароль"
|
||||
/>
|
||||
<label htmlFor="password">Ваш пароль*</label>
|
||||
<div className="inputWrapper">
|
||||
<input
|
||||
id="password"
|
||||
type={showPassword ? "text" : "password"}
|
||||
name="password"
|
||||
placeholder="Пароль"
|
||||
/>
|
||||
<img
|
||||
onClick={() => setShowPassword(!showPassword)}
|
||||
className="eye"
|
||||
src={eyePassword}
|
||||
alt="eye"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{error && (
|
||||
<div className="auth-box__form-error">
|
||||
@ -111,18 +120,21 @@ export const AuthBox = ({ title }) => {
|
||||
>
|
||||
{isLoading ? <Loader /> : "Войти"}
|
||||
</button>
|
||||
<span className="auth-box__reset">Вспомнить пароль</span>
|
||||
|
||||
<ModalRegistration active={modalReg} setActive={setModalReg} />
|
||||
<button
|
||||
className="auth-box__form-btn--role auth-box__auth-link"
|
||||
</div>
|
||||
<p className="auth-box__registration">
|
||||
У вас еще нет аккаунта?
|
||||
<span
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
setModalReg(true);
|
||||
}}
|
||||
>
|
||||
Регистрация
|
||||
</button>
|
||||
</div>
|
||||
Зарегистрироваться
|
||||
</span>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
|
@ -9,8 +9,7 @@
|
||||
}
|
||||
|
||||
&__header {
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 5.3em;
|
||||
font-size: 50px;
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
@ -35,7 +34,6 @@
|
||||
}
|
||||
|
||||
&__sign-in {
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 5.3em;
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
@ -45,7 +43,6 @@
|
||||
margin-top: 164px;
|
||||
|
||||
span {
|
||||
font-family: "GT Eesti Pro Display";
|
||||
color: #52b709;
|
||||
font-style: normal;
|
||||
letter-spacing: 0.56px;
|
||||
@ -55,21 +52,14 @@
|
||||
|
||||
&__title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 65px;
|
||||
margin-bottom: 54px;
|
||||
|
||||
span {
|
||||
color: #18586e;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 2em;
|
||||
font-weight: 500;
|
||||
color: #8DC63F;
|
||||
font-size: 50px;
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 16.81px;
|
||||
text-align: left;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
img {
|
||||
@ -92,34 +82,46 @@
|
||||
flex-direction: column;
|
||||
|
||||
label {
|
||||
color: #48802d;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 2.4em;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 16.81px;
|
||||
line-height: 19.2px;
|
||||
text-align: left;
|
||||
margin-bottom: 20px;
|
||||
margin-left: 45px;
|
||||
margin-bottom: 25px;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.inputWrapper {
|
||||
width: 366px;
|
||||
position: relative;
|
||||
|
||||
.eye {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
max-width: 366px;
|
||||
height: 75px;
|
||||
box-shadow: 0 0 59px rgba(44, 44, 44, 0.05);
|
||||
border-radius: 37px;
|
||||
border: 1px solid #c4c4c4;
|
||||
width: 100%;
|
||||
height: 52.5px;
|
||||
//box-shadow: 0 0 59px rgba(44, 44, 44, 0.05);
|
||||
border-radius: 8px;
|
||||
//border: 1px solid #c4c4c4;
|
||||
border: none;
|
||||
background-color: #ffffff;
|
||||
margin-bottom: 60px;
|
||||
font-family: "GT Eesti Pro Display";
|
||||
font-size: 2.2em;
|
||||
font-weight: 300;
|
||||
margin-bottom: 35px;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
line-height: 18px;
|
||||
font-style: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: normal;
|
||||
text-align: left;
|
||||
padding-left: 45px;
|
||||
padding: 16px 15px 16px 22px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@ -130,10 +132,10 @@
|
||||
}
|
||||
|
||||
&-btn {
|
||||
width: 268px;
|
||||
height: 75px;
|
||||
box-shadow: 6px 5px 20px rgba(82, 151, 34, 0.21);
|
||||
border-radius: 38px;
|
||||
width: 138px;
|
||||
height: 50px;
|
||||
//box-shadow: 6px 5px 20px rgba(82, 151, 34, 0.21);
|
||||
border-radius: 44px;
|
||||
background-color: #ffffff;
|
||||
background-image: linear-gradient(to top, #6aaf5c 0%, #52b709 100%),
|
||||
linear-gradient(
|
||||
@ -145,12 +147,10 @@
|
||||
);
|
||||
border: none;
|
||||
color: #ffffff;
|
||||
font-family: "Muller";
|
||||
font-weight: 500;
|
||||
font-size: 2.2em;
|
||||
font-weight: bold;
|
||||
letter-spacing: normal;
|
||||
line-height: 71.88px;
|
||||
line-height: 32px;
|
||||
text-align: center;
|
||||
border: 2px solid #6aaf5c;
|
||||
margin-right: 1.5rem;
|
||||
@ -164,7 +164,8 @@
|
||||
//color: #6aaf5c !important;
|
||||
|
||||
.loader * {
|
||||
fill: #6aaf5c;
|
||||
fill: #fff !important;
|
||||
max-width: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -174,7 +175,6 @@
|
||||
border-radius: 38px;
|
||||
background-color: #f5f5f5;
|
||||
border: 2px solid #6aaf5c;
|
||||
font-family: "Muller";
|
||||
font-size: 2em;
|
||||
font-weight: 400;
|
||||
letter-spacing: normal;
|
||||
@ -186,9 +186,32 @@
|
||||
|
||||
.loader * {
|
||||
fill: #fff !important;
|
||||
max-width: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__reset {
|
||||
color: #000000;
|
||||
font-size: 13px;
|
||||
line-height: 16px;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
&__registration {
|
||||
color: #000000;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
margin-top: 45px;
|
||||
line-height: 32px;
|
||||
|
||||
span {
|
||||
cursor: pointer;
|
||||
color: #52B709;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 575.98px) {
|
||||
|
@ -25,7 +25,14 @@ export const AuthHeader = () => {
|
||||
</NavLink>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Кабинет разработчика</a>
|
||||
<a
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
scrollToForm();
|
||||
}}
|
||||
>
|
||||
Кабинет разработчика
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Школа</a>
|
||||
|
@ -7,6 +7,7 @@ export const ModalLayout = ({
|
||||
setActive,
|
||||
children,
|
||||
styles,
|
||||
type,
|
||||
...props
|
||||
}) => {
|
||||
return (
|
||||
@ -17,7 +18,9 @@ export const ModalLayout = ({
|
||||
>
|
||||
<div
|
||||
className={
|
||||
styles ? `modal-layout__content ${styles}` : "modal-layout__content"
|
||||
styles
|
||||
? `modal-layout__content ${styles}`
|
||||
: `modal-layout__content ${type}`
|
||||
}
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
>
|
||||
|
@ -2,7 +2,7 @@
|
||||
z-index: 9;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.11);
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@ -104,6 +104,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
.createTiketProject {
|
||||
padding: 0;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.ck-editor {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
.backDrop {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.11);
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
@ -113,6 +113,13 @@ export const ModalTiсket = ({
|
||||
}
|
||||
|
||||
function editTask() {
|
||||
if (!inputsValue.title || !inputsValue.description) {
|
||||
return showNotification({
|
||||
show: true,
|
||||
text: "Заполните поля",
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
apiRequest("/task/update-task", {
|
||||
method: "PUT",
|
||||
data: {
|
||||
@ -121,6 +128,7 @@ export const ModalTiсket = ({
|
||||
description: inputsValue.description,
|
||||
},
|
||||
}).then((res) => {
|
||||
setEditOpen(!editOpen);
|
||||
dispatch(setProjectBoardFetch(projectId));
|
||||
showNotification({
|
||||
show: true,
|
||||
@ -809,7 +817,6 @@ export const ModalTiсket = ({
|
||||
className={editOpen ? "edit" : ""}
|
||||
onClick={() => {
|
||||
if (editOpen) {
|
||||
setEditOpen(!editOpen);
|
||||
editTask();
|
||||
} else {
|
||||
setEditOpen(!editOpen);
|
||||
|
@ -2,7 +2,7 @@
|
||||
z-index: 9;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.11);
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@ -126,12 +126,24 @@
|
||||
}
|
||||
|
||||
.taskDescription {
|
||||
display: -webkit-box;
|
||||
max-width: 550px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
-webkit-line-clamp: 7;
|
||||
-webkit-box-orient: vertical;
|
||||
max-height: 150px;
|
||||
overflow-y: auto;
|
||||
padding-right: 10px;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #cbd9f9;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track {
|
||||
background: #c5c0c6;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.fullName {
|
||||
|
@ -173,6 +173,13 @@ export const TicketFullScreen = () => {
|
||||
}
|
||||
|
||||
function editTask() {
|
||||
if (!inputsValue.title || !inputsValue.description) {
|
||||
return showNotification({
|
||||
show: true,
|
||||
text: "Заполните поля",
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
apiRequest("/task/update-task", {
|
||||
method: "PUT",
|
||||
data: {
|
||||
@ -186,6 +193,7 @@ export const TicketFullScreen = () => {
|
||||
text: "Изменения сохранены",
|
||||
type: "success",
|
||||
});
|
||||
setEditOpen(!editOpen);
|
||||
});
|
||||
}
|
||||
|
||||
@ -985,7 +993,6 @@ export const TicketFullScreen = () => {
|
||||
className={editOpen ? "edit" : ""}
|
||||
onClick={() => {
|
||||
if (editOpen) {
|
||||
setEditOpen(!editOpen);
|
||||
editTask();
|
||||
} else {
|
||||
setEditOpen(!editOpen);
|
||||
|
@ -1,6 +1,9 @@
|
||||
import ClassicEditor from "@ckeditor/ckeditor5-build-classic";
|
||||
import { CKEditor } from "@ckeditor/ckeditor5-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 { useDispatch, useSelector } from "react-redux";
|
||||
|
||||
import { getProfileInfo } from "@redux/outstaffingSlice";
|
||||
@ -19,20 +22,26 @@ import {
|
||||
setProjectBoardFetch,
|
||||
} from "@redux/projectsTrackerSlice";
|
||||
|
||||
import { urlForLocal } from "@utils/helper";
|
||||
import { getCorrectRequestDate, urlForLocal } from "@utils/helper";
|
||||
|
||||
import { apiRequest } from "@api/request";
|
||||
|
||||
import { useNotification } from "@hooks/useNotification";
|
||||
|
||||
import { getCorrectDate } from "@components/Calendar/calendarHelper";
|
||||
import BaseButton from "@components/Common/BaseButton/BaseButton";
|
||||
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
||||
|
||||
import arrowCreateTask from "assets/icons/arrows/arrowCreateTask.svg";
|
||||
import arrowRight from "assets/icons/arrows/arrowRightCreateTask.svg";
|
||||
import arrowDown from "assets/icons/arrows/selectArrow.png";
|
||||
import calendarImg from "assets/icons/createTaskCalendar.svg";
|
||||
import avatarMok from "assets/images/avatarMok.png";
|
||||
|
||||
import "./trackerModal.scss";
|
||||
|
||||
registerLocale("ru", ru);
|
||||
|
||||
export const TrackerModal = ({
|
||||
active,
|
||||
setActive,
|
||||
@ -70,6 +79,9 @@ export const TrackerModal = ({
|
||||
const [selectColumnPriorityOpen, setSelectColumnPriorityOpen] =
|
||||
useState(false);
|
||||
const { showNotification } = useNotification();
|
||||
const [deadLineDate, setDeadLineDate] = useState("");
|
||||
const [datePickerOpen, setDatePickerOpen] = useState(false);
|
||||
const [startDate, setStartDate] = useState(new Date());
|
||||
|
||||
function createTab() {
|
||||
if (!valueColumn) {
|
||||
@ -113,6 +125,7 @@ export const TrackerModal = ({
|
||||
user_id: localStorage.getItem("id"),
|
||||
column_id: selectedTab,
|
||||
priority: priorityTask,
|
||||
dead_line: deadLineDate ? getCorrectRequestDate(deadLineDate) : "",
|
||||
},
|
||||
}).then((res) => {
|
||||
if (res.status === 500) {
|
||||
@ -133,15 +146,16 @@ export const TrackerModal = ({
|
||||
dispatch(setProjectBoardFetch(projectBoard.id));
|
||||
setActive(false);
|
||||
setValueTiket("");
|
||||
setDescriptionTicket("Описание задачи");
|
||||
setDescriptionTicket("");
|
||||
setSelectedExecutorTask("Выберите исполнителя задачи");
|
||||
});
|
||||
} else {
|
||||
setActive(false);
|
||||
setValueTiket("");
|
||||
setDescriptionTicket("Описание задачи");
|
||||
setDescriptionTicket("");
|
||||
dispatch(setProjectBoardFetch(projectBoard.id));
|
||||
}
|
||||
setDeadLineDate("");
|
||||
showNotification({
|
||||
show: true,
|
||||
text: "Задача создана",
|
||||
@ -296,6 +310,7 @@ export const TrackerModal = ({
|
||||
<ModalLayout
|
||||
active={active}
|
||||
setActive={setActive}
|
||||
type={modalType}
|
||||
// onClick={() => {
|
||||
// setSelectWorkersOpen(false);
|
||||
// }}
|
||||
@ -388,93 +403,140 @@ export const TrackerModal = ({
|
||||
{modalType === "createTiketProject" && (
|
||||
<>
|
||||
<div className="title-project">
|
||||
<h4>Введите название и описание задачи</h4>
|
||||
<div className="input-container">
|
||||
<input
|
||||
maxLength="100"
|
||||
className="name-project"
|
||||
value={valueTiket}
|
||||
onChange={(e) => setValueTiket(e.target.value)}
|
||||
placeholder="Название задачи"
|
||||
/>
|
||||
</div>
|
||||
<CKEditor
|
||||
editor={ClassicEditor}
|
||||
data={descriptionTicket}
|
||||
config={{
|
||||
toolbar: [
|
||||
"heading",
|
||||
"|",
|
||||
"bold",
|
||||
"italic",
|
||||
"link",
|
||||
"bulletedList",
|
||||
"numberedList",
|
||||
],
|
||||
removePlugins: ["BlockQuote"],
|
||||
placeholder: "Описание задачи",
|
||||
}}
|
||||
onChange={(event, editor) => {
|
||||
const data = editor.getData();
|
||||
setDescriptionTicket(data);
|
||||
}}
|
||||
/>
|
||||
<div
|
||||
onClick={() => setSelectExecutorTaskOpen(!selectExecutorTaskOpen)}
|
||||
className={
|
||||
selectExecutorTaskOpen
|
||||
? "select__executor select__executor--open"
|
||||
: "select__executor"
|
||||
}
|
||||
>
|
||||
<div className="selected__executor">
|
||||
{selectedExecutorTask.user_id ? (
|
||||
<>
|
||||
<span>{selectedExecutorTask.user.fio}</span>
|
||||
<img
|
||||
className="avatar"
|
||||
src={urlForLocal(selectedExecutorTask.user.avatar)}
|
||||
alt="avatar"
|
||||
/>
|
||||
</>
|
||||
) : (
|
||||
<span>{selectedExecutorTask}</span>
|
||||
)}
|
||||
<div className="createTaskHead">
|
||||
<span>Этап</span>
|
||||
<div className="createTaskHead__selectColumn">
|
||||
<span>Backlog</span>
|
||||
<img src={arrowCreateTask} alt="arrow" />
|
||||
</div>
|
||||
<img className="arrow" src={arrowDown} alt="arrow" />
|
||||
{selectExecutorTaskOpen && (
|
||||
<div className="select__executor__dropDown">
|
||||
{correctProjectUsers.length ? (
|
||||
correctProjectUsers.map((person) => {
|
||||
return (
|
||||
<div
|
||||
onClick={() => setSelectedExecutorTask(person)}
|
||||
className="executor"
|
||||
key={person.user_id}
|
||||
>
|
||||
<span>{person.user.fio}</span>
|
||||
<img
|
||||
className="avatar"
|
||||
src={
|
||||
person.user?.avatar
|
||||
? urlForLocal(person.user.avatar)
|
||||
: avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
})
|
||||
) : (
|
||||
<span>Нет пользователей</span>
|
||||
</div>
|
||||
<div className="createTaskBody">
|
||||
<div className="createTaskBody__left">
|
||||
<h4>Введите название и описание задачи</h4>
|
||||
<div className="input-container">
|
||||
<input
|
||||
maxLength="100"
|
||||
className="name-project"
|
||||
value={valueTiket}
|
||||
onChange={(e) => setValueTiket(e.target.value)}
|
||||
placeholder="Название задачи"
|
||||
/>
|
||||
</div>
|
||||
<CKEditor
|
||||
editor={ClassicEditor}
|
||||
data={descriptionTicket}
|
||||
config={{
|
||||
toolbar: [
|
||||
"heading",
|
||||
"|",
|
||||
"bold",
|
||||
"italic",
|
||||
"link",
|
||||
"bulletedList",
|
||||
"numberedList",
|
||||
],
|
||||
removePlugins: ["BlockQuote"],
|
||||
placeholder: "Описание задачи",
|
||||
}}
|
||||
onChange={(event, editor) => {
|
||||
const data = editor.getData();
|
||||
setDescriptionTicket(data);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="createTaskBody__right">
|
||||
<div className="createTaskBody__right__owner">
|
||||
<p>Создатель : {profileInfo?.fio}</p>
|
||||
<img
|
||||
src={
|
||||
profileInfo.photo
|
||||
? urlForLocal(profileInfo.photo)
|
||||
: avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
onClick={() =>
|
||||
setSelectExecutorTaskOpen(!selectExecutorTaskOpen)
|
||||
}
|
||||
className={
|
||||
selectExecutorTaskOpen
|
||||
? "select__executor select__executor--open"
|
||||
: "select__executor"
|
||||
}
|
||||
>
|
||||
<div className="selected__executor">
|
||||
{selectedExecutorTask.user_id ? (
|
||||
<>
|
||||
<span>{selectedExecutorTask.user.fio}</span>
|
||||
<img
|
||||
className="avatar"
|
||||
src={urlForLocal(selectedExecutorTask.user.avatar)}
|
||||
alt="avatar"
|
||||
/>
|
||||
</>
|
||||
) : (
|
||||
<span>{selectedExecutorTask}</span>
|
||||
)}
|
||||
</div>
|
||||
<img className="arrow" src={arrowDown} alt="arrow" />
|
||||
{selectExecutorTaskOpen && (
|
||||
<div className="select__executor__dropDown">
|
||||
{correctProjectUsers.length ? (
|
||||
correctProjectUsers.map((person) => {
|
||||
return (
|
||||
<div
|
||||
onClick={() => setSelectedExecutorTask(person)}
|
||||
className="executor"
|
||||
key={person.user_id}
|
||||
>
|
||||
<span>{person.user.fio}</span>
|
||||
<img
|
||||
className="avatar"
|
||||
src={
|
||||
person.user?.avatar
|
||||
? urlForLocal(person.user.avatar)
|
||||
: avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
})
|
||||
) : (
|
||||
<span>Нет пользователей</span>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
<div className="createTaskBody__right__deadLine">
|
||||
<img src={calendarImg} alt="calendar" />
|
||||
<span>Срок исполнения</span>
|
||||
<img src={arrowRight} className="arrow" alt="arrow" />
|
||||
<p onClick={() => setDatePickerOpen(!datePickerOpen)}>
|
||||
{deadLineDate
|
||||
? getCorrectDate(deadLineDate)
|
||||
: "Дата не выбрана"}
|
||||
</p>
|
||||
<DatePicker
|
||||
className="datePicker"
|
||||
open={datePickerOpen}
|
||||
locale="ru"
|
||||
selected={startDate}
|
||||
onChange={(date) => {
|
||||
setDatePickerOpen(false);
|
||||
setStartDate(date);
|
||||
setDeadLineDate(date);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<BaseButton styles={"button-add"} onClick={createTiket}>
|
||||
Создать
|
||||
</BaseButton>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<BaseButton styles={"button-add"} onClick={createTiket}>
|
||||
Создать
|
||||
</BaseButton>
|
||||
</>
|
||||
)}
|
||||
{modalType === "editProject" && (
|
||||
|
@ -3,7 +3,7 @@
|
||||
z-index: 9;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.11);
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@ -145,7 +145,7 @@
|
||||
align-items: center;
|
||||
|
||||
span {
|
||||
max-width: 205px;
|
||||
max-width: 250px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
@ -162,9 +162,9 @@
|
||||
|
||||
&__dropDown {
|
||||
position: absolute;
|
||||
background: white;
|
||||
background: #F1F1F1;
|
||||
border-radius: 8px;
|
||||
top: 50px;
|
||||
top: 55px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
padding: 9.5px 12px;
|
||||
@ -275,6 +275,235 @@
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
.createTaskHead {
|
||||
width: 100%;
|
||||
padding: 30px 42px 18px;
|
||||
display: flex;
|
||||
column-gap: 9.5px;
|
||||
align-items: center;
|
||||
background: #F1F1F1;
|
||||
border-radius: 22px 22px 0 0;
|
||||
|
||||
span {
|
||||
font-size: 15px;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
&__selectColumn {
|
||||
display: flex;
|
||||
column-gap: 8px;
|
||||
cursor: pointer;
|
||||
|
||||
span {
|
||||
padding: 3.75px 16.25px 5.75px;
|
||||
color: #FFFFFF;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
background: #52B709;
|
||||
border-radius: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.createTaskBody {
|
||||
padding: 13px 43px 46px 42px;
|
||||
display: flex;
|
||||
column-gap: 55px;
|
||||
|
||||
&__left {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
h4 {
|
||||
color: #263238 !important;
|
||||
font-size: 16px;
|
||||
line-height: 19.2px;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.input-container {
|
||||
background: #F1F1F1;
|
||||
margin: 0 0 17px;
|
||||
width: 393px;
|
||||
height: 47px;
|
||||
|
||||
input {
|
||||
background: #F1F1F1;
|
||||
color: #000000;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
font-weight: 300;
|
||||
}
|
||||
}
|
||||
|
||||
.ck-editor {
|
||||
border: 1px solid #DDDDDD;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.ck-editor__editable.ck-rounded-corners {
|
||||
min-height: 110px;
|
||||
max-height: 110px;
|
||||
}
|
||||
}
|
||||
|
||||
&__right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: start;
|
||||
justify-content: end;
|
||||
|
||||
&__owner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 9.5px;
|
||||
margin-bottom: 30px;
|
||||
p {
|
||||
color: #2D4A17;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.select__executor {
|
||||
background: #F1F1F1;
|
||||
width: 393px;
|
||||
height: 47px;
|
||||
font-weight: 300;
|
||||
line-height: 18px;
|
||||
font-size: 15px;
|
||||
margin-bottom: 17.5px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.button-add {
|
||||
margin: 0;
|
||||
width: 185px;
|
||||
height: 42px;
|
||||
color: #FFFFFF;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
&__deadLine {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 18px;
|
||||
font-weight: 300;
|
||||
line-height: 18px;
|
||||
font-size: 15px;
|
||||
position: relative;
|
||||
margin-bottom: 22px;
|
||||
|
||||
span {
|
||||
color: #6F6F6F;
|
||||
}
|
||||
|
||||
p {
|
||||
cursor: pointer;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.datePicker {
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
padding: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.react-datepicker-wrapper {
|
||||
position: absolute;
|
||||
top: -15px;
|
||||
max-width: 120px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.react-datepicker {
|
||||
border: 1px solid #e8ede4;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.react-datepicker-popper {
|
||||
top: 20px !important;
|
||||
left: -110px !important;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.react-datepicker__current-month {
|
||||
font-size: 18px;
|
||||
font-family: "LabGrotesque", sans-serif;
|
||||
text-transform: capitalize;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.react-datepicker__navigation-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50px;
|
||||
border: 2px solid #cbd1d2;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 0;
|
||||
|
||||
&:hover {
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.react-datepicker__navigation-icon--next::before {
|
||||
border-width: 2px 2px 0 0;
|
||||
top: auto;
|
||||
left: 4px;
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.react-datepicker__navigation-icon--previous::before {
|
||||
border-width: 2px 2px 0 0;
|
||||
top: 5px;
|
||||
left: 7px;
|
||||
height: 6px;
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.react-datepicker__header {
|
||||
padding: 5px 0 10px;
|
||||
border-bottom: 1px solid #baacc0;
|
||||
}
|
||||
|
||||
.react-datepicker__day {
|
||||
font-size: 16px;
|
||||
width: 35px;
|
||||
font-family: "LabGrotesque", sans-serif;
|
||||
border-radius: 50px;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
.react-datepicker__day-name {
|
||||
font-size: 18px;
|
||||
width: 35px;
|
||||
font-weight: 500;
|
||||
font-family: "LabGrotesque", sans-serif;
|
||||
}
|
||||
|
||||
.react-datepicker__triangle {
|
||||
left: 85px !important;
|
||||
|
||||
&:before {
|
||||
border: 1px solid #e8ede4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.name-project {
|
||||
|
@ -2,7 +2,7 @@
|
||||
z-index: 9;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.11);
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
@ -6,6 +6,10 @@ import "slick-carousel/slick/slick.css";
|
||||
|
||||
import BaseButton from "@components/Common/BaseButton/BaseButton";
|
||||
|
||||
import avatarMockFirst from "assets/images/mock/avatarMoсk3.png";
|
||||
import avatarMockSecond from "assets/images/mock/avatarMoсk4.png";
|
||||
import avatarMockThird from "assets/images/mock/avatarMoсk5.png";
|
||||
import avatarMockFourth from "assets/images/mock/avatarMoсk6.png";
|
||||
import mockWorker from "assets/images/mock/mokPerson.png";
|
||||
|
||||
import "./sliderWorkers.scss";
|
||||
@ -17,19 +21,19 @@ export const SliderWorkers = ({ title, titleInfo, subTitle }) => {
|
||||
skils: "React / Vue Front end, Middle разработчик",
|
||||
},
|
||||
{
|
||||
avatar: mockWorker,
|
||||
avatar: avatarMockFirst,
|
||||
skils: "Vue / React Front end, Senior разработчик",
|
||||
},
|
||||
{
|
||||
avatar: mockWorker,
|
||||
avatar: avatarMockSecond,
|
||||
skils: "NodeJs Fullstack, Middle разработчик",
|
||||
},
|
||||
{
|
||||
avatar: mockWorker,
|
||||
avatar: avatarMockThird,
|
||||
skils: "React / Vue Front end, Middle разработчик",
|
||||
},
|
||||
{
|
||||
avatar: mockWorker,
|
||||
avatar: avatarMockFourth,
|
||||
skils: "React / PHP Fullstack, Middle разработчик",
|
||||
},
|
||||
]);
|
||||
|
@ -61,10 +61,11 @@
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 15px;
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
line-height: 22px;
|
||||
color: black;
|
||||
width: 160px;
|
||||
width: 210px;
|
||||
}
|
||||
|
||||
&__resume {
|
||||
|
@ -69,7 +69,7 @@ const AuthForDevelopers = () => {
|
||||
<div className="row">
|
||||
<div className="col-12 col-xl-6">
|
||||
<div className="auth-developers__box">
|
||||
<AuthBox title="Для разработчиков" />
|
||||
<AuthBox title="для разработчиков" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-2">
|
||||
@ -93,7 +93,7 @@ const AuthForDevelopers = () => {
|
||||
<div>
|
||||
{/* <img className='auth-specialists} src={specialists} alt="" /> */}
|
||||
<p className="auth-developers__specialists">
|
||||
20 Специалистов
|
||||
300 Специалистов
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -67,7 +67,7 @@ const AuthForPartners = () => {
|
||||
<div className="row">
|
||||
<div className="col-12 col-xl-6">
|
||||
<div className="auth-partners__box">
|
||||
<AuthBox title="Для партнёров" />
|
||||
<AuthBox title="для партнёров" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xl-2">
|
||||
@ -92,7 +92,7 @@ const AuthForPartners = () => {
|
||||
<div>
|
||||
{/* <img className='auth-specialists} src={specialists} alt="" /> */}
|
||||
<p className="auth-partners__specialists">
|
||||
20 Специалистов
|
||||
300 Специалистов
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -574,7 +574,7 @@ export const ProjectTracker = () => {
|
||||
selectedTabTask(
|
||||
column.id,
|
||||
projectBoard?.columns && column.tasks.length
|
||||
? column.tasks.at(-1).priority + 1
|
||||
? column.tasks[0].priority - 1
|
||||
: 1
|
||||
);
|
||||
}}
|
||||
|