Compare commits

..

No commits in common. "main" and "summary_fix" have entirely different histories.

110 changed files with 746 additions and 5592 deletions

View File

@ -511,19 +511,3 @@
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Soyuz Grotesk";
src: url("SoyuzGroteskBold.woff2") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Highliner";
src: url("Highliner-Regular.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}

View File

@ -1,3 +0,0 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.4339 2.66676H7.24725L7.03392 2.0001C6.89562 1.60892 6.63908 1.27043 6.29985 1.03154C5.96062 0.792642 5.55549 0.665163 5.14059 0.666763H2.10059C1.57015 0.666763 1.06145 0.877477 0.686373 1.25255C0.3113 1.62762 0.100586 2.13633 0.100586 2.66676V11.3334C0.100586 11.8639 0.3113 12.3726 0.686373 12.7476C1.06145 13.1227 1.57015 13.3334 2.10059 13.3334H11.4339C11.9644 13.3334 12.4731 13.1227 12.8481 12.7476C13.2232 12.3726 13.4339 11.8639 13.4339 11.3334V4.66676C13.4339 4.13633 13.2232 3.62762 12.8481 3.25255C12.4731 2.87748 11.9644 2.66676 11.4339 2.66676ZM12.1006 11.3334C12.1006 11.5102 12.0303 11.6798 11.9053 11.8048C11.7803 11.9299 11.6107 12.0001 11.4339 12.0001H2.10059C1.92378 12.0001 1.75421 11.9299 1.62918 11.8048C1.50416 11.6798 1.43392 11.5102 1.43392 11.3334V2.66676C1.43392 2.48995 1.50416 2.32038 1.62918 2.19536C1.75421 2.07033 1.92378 2.0001 2.10059 2.0001H5.14059C5.28035 1.99974 5.41669 2.04331 5.53034 2.12466C5.64399 2.20601 5.7292 2.32102 5.77392 2.45343L6.13392 3.54676C6.17864 3.67918 6.26385 3.79419 6.3775 3.87553C6.49115 3.95688 6.62749 4.00046 6.76725 4.0001H11.4339C11.6107 4.0001 11.7803 4.07033 11.9053 4.19536C12.0303 4.32038 12.1006 4.48995 12.1006 4.66676V11.3334Z" fill="#52B709"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,3 +0,0 @@
<svg width="14" height="15" viewBox="0 0 14 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.62109 12.928H2.62109C2.44428 12.928 2.27471 12.8577 2.14969 12.7327C2.02467 12.6077 1.95443 12.4381 1.95443 12.2613V2.92798C1.95443 2.75117 2.02467 2.5816 2.14969 2.45657C2.27471 2.33155 2.44428 2.26131 2.62109 2.26131H5.95443V4.26131C5.95443 4.79174 6.16514 5.30045 6.54021 5.67553C6.91529 6.0506 7.42399 6.26131 7.95443 6.26131H9.95443V9.59465C9.95443 9.77146 10.0247 9.94103 10.1497 10.066C10.2747 10.1911 10.4443 10.2613 10.6211 10.2613C10.7979 10.2613 10.9675 10.1911 11.0925 10.066C11.2175 9.94103 11.2878 9.77146 11.2878 9.59465V5.59465C11.2878 5.59465 11.2878 5.59465 11.2878 5.55465C11.2808 5.4934 11.2674 5.43307 11.2478 5.37465V5.31465C11.2157 5.2461 11.1729 5.18309 11.1211 5.12798L7.12109 1.12798C7.06598 1.07612 7.00297 1.03337 6.93443 1.00131C6.91237 0.997451 6.88982 0.997451 6.86776 1.00131C6.80294 0.966647 6.73327 0.941927 6.66109 0.927979H2.62109C2.09066 0.927979 1.58195 1.13869 1.20688 1.51377C0.831807 1.88884 0.621094 2.39755 0.621094 2.92798V12.2613C0.621094 12.7917 0.831807 13.3005 1.20688 13.6755C1.58195 14.0506 2.09066 14.2613 2.62109 14.2613H6.62109C6.7979 14.2613 6.96747 14.1911 7.0925 14.0661C7.21752 13.941 7.28776 13.7715 7.28776 13.5946C7.28776 13.4178 7.21752 13.2483 7.0925 13.1232C6.96747 12.9982 6.7979 12.928 6.62109 12.928ZM7.28776 3.20131L9.01443 4.92798H7.95443C7.77762 4.92798 7.60805 4.85774 7.48302 4.73272C7.358 4.60769 7.28776 4.43812 7.28776 4.26131V3.20131ZM3.95443 8.92798H7.95443C8.13124 8.92798 8.30081 8.85774 8.42583 8.73272C8.55086 8.60769 8.62109 8.43812 8.62109 8.26131C8.62109 8.0845 8.55086 7.91493 8.42583 7.78991C8.30081 7.66488 8.13124 7.59465 7.95443 7.59465H3.95443C3.77762 7.59465 3.60805 7.66488 3.48302 7.78991C3.358 7.91493 3.28776 8.0845 3.28776 8.26131C3.28776 8.43812 3.358 8.60769 3.48302 8.73272C3.60805 8.85774 3.77762 8.92798 3.95443 8.92798ZM6.62109 10.2613H3.95443C3.77762 10.2613 3.60805 10.3315 3.48302 10.4566C3.358 10.5816 3.28776 10.7512 3.28776 10.928C3.28776 11.1048 3.358 11.2744 3.48302 11.3994C3.60805 11.5244 3.77762 11.5946 3.95443 11.5946H6.62109C6.7979 11.5946 6.96747 11.5244 7.0925 11.3994C7.21752 11.2744 7.28776 11.1048 7.28776 10.928C7.28776 10.7512 7.21752 10.5816 7.0925 10.4566C6.96747 10.3315 6.7979 10.2613 6.62109 10.2613ZM3.95443 6.26131H4.62109C4.7979 6.26131 4.96747 6.19107 5.0925 6.06605C5.21752 5.94103 5.28776 5.77146 5.28776 5.59465C5.28776 5.41783 5.21752 5.24827 5.0925 5.12324C4.96747 4.99822 4.7979 4.92798 4.62109 4.92798H3.95443C3.77762 4.92798 3.60805 4.99822 3.48302 5.12324C3.358 5.24827 3.28776 5.41783 3.28776 5.59465C3.28776 5.77146 3.358 5.94103 3.48302 6.06605C3.60805 6.19107 3.77762 6.26131 3.95443 6.26131ZM13.0944 10.4546C13.0325 10.3922 12.9587 10.3426 12.8775 10.3087C12.7962 10.2749 12.7091 10.2574 12.6211 10.2574C12.5331 10.2574 12.4459 10.2749 12.3647 10.3087C12.2835 10.3426 12.2097 10.3922 12.1478 10.4546L9.95443 12.6546L9.09443 11.788C9.03227 11.7258 8.95848 11.6765 8.87726 11.6429C8.79605 11.6092 8.709 11.5919 8.62109 11.5919C8.53319 11.5919 8.44614 11.6092 8.36493 11.6429C8.28371 11.6765 8.20992 11.7258 8.14776 11.788C8.0856 11.8501 8.03629 11.9239 8.00265 12.0051C7.96901 12.0864 7.9517 12.1734 7.9517 12.2613C7.9517 12.3492 7.96901 12.4363 8.00265 12.5175C8.03629 12.5987 8.0856 12.6725 8.14776 12.7346L9.48109 14.068C9.54307 14.1305 9.6168 14.1801 9.69804 14.2139C9.77928 14.2478 9.86642 14.2652 9.95443 14.2652C10.0424 14.2652 10.1296 14.2478 10.2108 14.2139C10.2921 14.1801 10.3658 14.1305 10.4278 14.068L13.0944 11.4013C13.1569 11.3393 13.2065 11.2656 13.2404 11.1844C13.2742 11.1031 13.2916 11.016 13.2916 10.928C13.2916 10.84 13.2742 10.7528 13.2404 10.6716C13.2065 10.5904 13.1569 10.5166 13.0944 10.4546Z" fill="#52B709"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -1,4 +0,0 @@
<svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 12.5C0 5.87258 5.37258 0.5 12 0.5H28C34.6274 0.5 40 5.87258 40 12.5V28.5C40 35.1274 34.6274 40.5 28 40.5H12C5.37258 40.5 0 35.1274 0 28.5V12.5Z" fill="#F0F4FA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.4809 14.1916C26.6868 14.105 26.9122 14.0751 27.1336 14.1051C27.355 14.1351 27.5643 14.2239 27.7398 14.3622C27.9152 14.5006 28.0504 14.6834 28.1312 14.8917C28.212 15.1 28.2355 15.3262 28.1992 15.5466L26.3092 27.0108C26.1259 28.1166 24.9125 28.7508 23.8984 28.2C23.05 27.7391 21.79 27.0291 20.6567 26.2883C20.09 25.9175 18.3542 24.73 18.5675 23.885C18.7509 23.1625 21.6675 20.4475 23.3342 18.8333C23.9884 18.1991 23.69 17.8333 22.9175 18.4166C20.9984 19.865 17.9192 22.0675 16.9009 22.6875C16.0025 23.2341 15.5342 23.3275 14.9742 23.2341C13.9525 23.0641 13.005 22.8008 12.2317 22.48C11.1867 22.0466 11.2375 20.61 12.2309 20.1916L26.4809 14.1916Z" fill="#7992B2"/>
</svg>

Before

Width:  |  Height:  |  Size: 992 B

View File

@ -1,3 +0,0 @@
<svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 10.6666H4.66667C4.44565 10.6666 4.23369 10.7544 4.07741 10.9107C3.92113 11.067 3.83333 11.2789 3.83333 11.5C3.83333 11.721 3.92113 11.9329 4.07741 12.0892C4.23369 12.2455 4.44565 12.3333 4.66667 12.3333H11.3333C11.5543 12.3333 11.7663 12.2455 11.9226 12.0892C12.0789 11.9329 12.1667 11.721 12.1667 11.5C12.1667 11.2789 12.0789 11.067 11.9226 10.9107C11.7663 10.7544 11.5543 10.6666 11.3333 10.6666ZM11.3333 7.33329H6.33333C6.11232 7.33329 5.90036 7.42109 5.74408 7.57737C5.5878 7.73365 5.5 7.94561 5.5 8.16663C5.5 8.38764 5.5878 8.5996 5.74408 8.75588C5.90036 8.91216 6.11232 8.99996 6.33333 8.99996H11.3333C11.5543 8.99996 11.7663 8.91216 11.9226 8.75588C12.0789 8.5996 12.1667 8.38764 12.1667 8.16663C12.1667 7.94561 12.0789 7.73365 11.9226 7.57737C11.7663 7.42109 11.5543 7.33329 11.3333 7.33329ZM14.6667 2.33329H12.1667V1.49996C12.1667 1.27895 12.0789 1.06698 11.9226 0.910704C11.7663 0.754423 11.5543 0.666626 11.3333 0.666626C11.1123 0.666626 10.9004 0.754423 10.7441 0.910704C10.5878 1.06698 10.5 1.27895 10.5 1.49996V2.33329H8.83333V1.49996C8.83333 1.27895 8.74554 1.06698 8.58926 0.910704C8.43297 0.754423 8.22101 0.666626 8 0.666626C7.77899 0.666626 7.56702 0.754423 7.41074 0.910704C7.25446 1.06698 7.16667 1.27895 7.16667 1.49996V2.33329H5.5V1.49996C5.5 1.27895 5.4122 1.06698 5.25592 0.910704C5.09964 0.754423 4.88768 0.666626 4.66667 0.666626C4.44565 0.666626 4.23369 0.754423 4.07741 0.910704C3.92113 1.06698 3.83333 1.27895 3.83333 1.49996V2.33329H1.33333C1.11232 2.33329 0.900358 2.42109 0.744078 2.57737C0.587797 2.73365 0.5 2.94561 0.5 3.16663V14.8333C0.5 15.4963 0.763392 16.1322 1.23223 16.6011C1.70107 17.0699 2.33696 17.3333 3 17.3333H13C13.663 17.3333 14.2989 17.0699 14.7678 16.6011C15.2366 16.1322 15.5 15.4963 15.5 14.8333V3.16663C15.5 2.94561 15.4122 2.73365 15.2559 2.57737C15.0996 2.42109 14.8877 2.33329 14.6667 2.33329ZM13.8333 14.8333C13.8333 15.0543 13.7455 15.2663 13.5893 15.4225C13.433 15.5788 13.221 15.6666 13 15.6666H3C2.77899 15.6666 2.56702 15.5788 2.41074 15.4225C2.25446 15.2663 2.16667 15.0543 2.16667 14.8333V3.99996H3.83333V4.83329C3.83333 5.05431 3.92113 5.26627 4.07741 5.42255C4.23369 5.57883 4.44565 5.66663 4.66667 5.66663C4.88768 5.66663 5.09964 5.57883 5.25592 5.42255C5.4122 5.26627 5.5 5.05431 5.5 4.83329V3.99996H7.16667V4.83329C7.16667 5.05431 7.25446 5.26627 7.41074 5.42255C7.56702 5.57883 7.77899 5.66663 8 5.66663C8.22101 5.66663 8.43297 5.57883 8.58926 5.42255C8.74554 5.26627 8.83333 5.05431 8.83333 4.83329V3.99996H10.5V4.83329C10.5 5.05431 10.5878 5.26627 10.7441 5.42255C10.9004 5.57883 11.1123 5.66663 11.3333 5.66663C11.5543 5.66663 11.7663 5.57883 11.9226 5.42255C12.0789 5.26627 12.1667 5.05431 12.1667 4.83329V3.99996H13.8333V14.8333Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,3 +0,0 @@
<svg width="21" height="22" viewBox="0 0 21 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.475378 20.0404C0.221537 20.2942 0.221537 20.7058 0.475378 20.9596C0.729219 21.2135 1.14078 21.2135 1.39462 20.9596L0.475378 20.0404ZM20.585 1.5C20.585 1.14102 20.294 0.850001 19.935 0.850001L14.085 0.850001C13.726 0.850001 13.435 1.14102 13.435 1.5C13.435 1.85899 13.726 2.15 14.085 2.15L19.285 2.15L19.285 7.35C19.285 7.70899 19.576 8 19.935 8C20.294 8 20.585 7.70899 20.585 7.35L20.585 1.5ZM1.39462 20.9596L20.3946 1.95962L19.4754 1.04038L0.475378 20.0404L1.39462 20.9596Z" fill="#1E1E1E"/>
</svg>

Before

Width:  |  Height:  |  Size: 608 B

View File

@ -1,3 +0,0 @@
<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.67818 21.6957C3.0188 23.0626 5.19238 23.0626 6.533 21.6957C7.87362 20.3288 7.87362 18.1126 6.533 16.7457C5.19238 15.3789 3.0188 15.3789 1.67818 16.7457C0.337558 18.1126 0.337558 20.3288 1.67818 21.6957ZM22.6979 0.920479C22.6979 0.558028 22.4097 0.264204 22.0542 0.264205L16.2612 0.264204C15.9057 0.264204 15.6175 0.558029 15.6175 0.920479C15.6175 1.28293 15.9057 1.57675 16.2612 1.57675L21.4105 1.57675L21.4105 6.82695C21.4105 7.1894 21.6987 7.48322 22.0542 7.48322C22.4097 7.48322 22.6979 7.1894 22.6979 6.82695L22.6979 0.920479ZM4.56073 19.6848L22.5093 1.38453L21.5991 0.456423L3.65045 18.7566L4.56073 19.6848Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 744 B

View File

@ -1,3 +0,0 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.98498 20.1808C3.33879 21.5346 5.53377 21.5346 6.88758 20.1808C8.2414 18.827 8.2414 16.632 6.88758 15.2782C5.53377 13.9244 3.33879 13.9244 1.98498 15.2782C0.631159 16.632 0.631159 18.827 1.98498 20.1808ZM21.7328 1.08297C21.7328 0.723983 21.4418 0.432968 21.0828 0.432968L15.2328 0.432968C14.8738 0.432968 14.5828 0.723984 14.5828 1.08297C14.5828 1.44195 14.8738 1.73297 15.2328 1.73297L20.4328 1.73297L20.4328 6.93297C20.4328 7.29195 20.7238 7.58297 21.0828 7.58297C21.4418 7.58297 21.7328 7.29195 21.7328 6.93297L21.7328 1.08297ZM4.8959 18.1891L21.5424 1.54259L20.6232 0.623349L3.97666 17.2699L4.8959 18.1891Z" fill="#1E1E1E"/>
</svg>

Before

Width:  |  Height:  |  Size: 743 B

View File

@ -1,3 +0,0 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.54873 1.5487C0.19491 2.90251 0.19491 5.09749 1.54873 6.4513C2.90254 7.80512 5.09752 7.80512 6.45133 6.4513C7.80515 5.09749 7.80515 2.90251 6.45133 1.5487C5.09752 0.194879 2.90254 0.194879 1.54873 1.5487ZM18.7894 19.4394C19.1484 19.4394 19.4394 19.1484 19.4394 18.7894L19.4394 12.9394C19.4394 12.5804 19.1484 12.2894 18.7894 12.2894C18.4305 12.2894 18.1394 12.5804 18.1394 12.9394L18.1394 18.1394L12.9394 18.1394C12.5805 18.1394 12.2894 18.4304 12.2894 18.7894C12.2894 19.1484 12.5805 19.4394 12.9394 19.4394L18.7894 19.4394ZM3.54041 4.45962L18.3298 19.249L19.2491 18.3298L4.45965 3.54038L3.54041 4.45962Z" fill="#E44B1A"/>
</svg>

Before

Width:  |  Height:  |  Size: 738 B

View File

@ -1,3 +0,0 @@
<svg width="19" height="10" viewBox="0 0 19 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18 5.65C18.359 5.65 18.65 5.35899 18.65 5C18.65 4.64101 18.359 4.35 18 4.35L18 5.65ZM0.540381 4.54038C0.286539 4.79422 0.286539 5.20578 0.54038 5.45962L4.67695 9.59619C4.9308 9.85003 5.34235 9.85003 5.59619 9.59619C5.85003 9.34235 5.85003 8.93079 5.59619 8.67695L1.91924 5L5.59619 1.32304C5.85004 1.0692 5.85004 0.657646 5.59619 0.403805C5.34235 0.149964 4.9308 0.149964 4.67696 0.403805L0.540381 4.54038ZM18 4.35L1 4.35L1 5.65L18 5.65L18 4.35Z" fill="#1E1E1E"/>
</svg>

Before

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -1,20 +0,0 @@
<svg width="174" height="27" viewBox="0 0 174 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M56.288 23.115C56.288 22.7754 56.191 22.4357 56.013 22.1446C55.8351 21.8534 55.5602 21.627 55.2367 21.4814C54.9132 21.352 54.5735 21.3197 54.2338 21.3844C53.8942 21.4491 53.5868 21.6108 53.3442 21.8534C53.1016 22.096 52.9398 22.4034 52.8751 22.743C52.8104 23.0827 52.8428 23.4385 52.9722 23.7459C53.1016 24.0694 53.328 24.3443 53.6192 24.5384C53.8942 24.7163 54.2338 24.8296 54.5573 24.8296C54.7676 24.8296 54.994 24.8134 55.1881 24.7325C55.3984 24.6678 55.5925 24.5546 55.7542 24.409C55.916 24.2635 56.0454 24.0857 56.1424 23.8916C56.2395 23.6975 56.288 23.4871 56.3042 23.2606V23.115H56.288ZM52.0179 22.5166C52.0179 21.4167 52.2929 20.1551 53.2957 19.5566C53.9427 19.2655 54.6058 19.0552 55.3014 18.9258C55.6087 18.8287 55.8351 18.667 55.8675 18.4082H56.563C56.563 18.667 56.4983 18.9258 56.3204 19.1361C56.1586 19.3302 55.916 19.4757 55.6572 19.5081C54.9779 19.6375 54.3147 19.8316 53.6677 20.0904C53.0531 20.4139 52.7134 21.1256 52.6487 22.0313H52.6811C52.8428 21.627 53.1178 21.2873 53.4898 21.0447C53.8618 20.8021 54.2823 20.6888 54.7191 20.7212C55.0264 20.7212 55.3337 20.7697 55.6249 20.8829C55.916 20.9962 56.1748 21.1741 56.3851 21.4005C56.5954 21.627 56.7571 21.8858 56.8703 22.1769C56.9674 22.4681 57.0159 22.7755 56.9997 23.0829C56.9997 23.4064 56.9512 23.7297 56.838 24.037C56.7086 24.3443 56.5306 24.6193 56.3042 24.8457C56.0778 25.0722 55.7866 25.2501 55.4793 25.3633C55.172 25.4766 54.8485 25.5252 54.525 25.5091C53.1178 25.5414 52.0179 24.7163 52.0179 22.5328" fill="#1D1D1B"/>
<path d="M57.954 20.7988H58.6657V24.2764L61.286 20.7988H61.9977V25.3601H61.2698V21.8825L58.698 25.3763H57.9702L57.954 20.7988Z" fill="#1D1D1B"/>
<path d="M62.7741 25.0901L63.0814 24.4754C63.5829 24.7342 64.1328 24.8796 64.6989 24.8635C65.443 24.8635 65.9767 24.6695 65.9767 24.0711C65.9767 23.4726 65.54 23.2945 64.7474 23.2945H63.874V22.6639H64.6989C65.3944 22.6639 65.8311 22.502 65.8311 22.0005C65.8311 21.4991 65.3944 21.3375 64.7151 21.3375C64.1975 21.3375 63.6637 21.4508 63.1785 21.6449L62.9197 20.9977C63.502 20.7713 64.1166 20.6582 64.7313 20.6582C65.8797 20.6582 66.559 21.0949 66.559 21.839C66.559 21.9845 66.5267 22.1139 66.4781 22.2433C66.4296 22.3727 66.3487 22.502 66.2517 22.599C66.0414 22.7931 65.7664 22.9063 65.4753 22.9063C66.2517 23.0034 66.6722 23.4077 66.6722 24.1194C66.6722 24.9605 66.0576 25.5106 64.6504 25.5106C63.9872 25.5268 63.3402 25.3812 62.7579 25.0739" fill="#1D1D1B"/>
<path d="M71.7187 20.7988V25.3601H71.007V23.2736H68.3544V25.3601H67.6427V20.7988H68.3544V22.6266H71.007V20.7988H71.7187Z" fill="#1D1D1B"/>
<path d="M73.417 22.6287H76.4094C76.4094 22.4508 76.3608 22.2727 76.2799 22.0948C76.1991 21.933 76.1021 21.7715 75.9565 21.6582C75.8271 21.5288 75.6653 21.4478 75.4874 21.3831C75.3095 21.3346 75.1316 21.3024 74.9375 21.3186C74.5654 21.2862 74.1934 21.4156 73.9023 21.6582C73.6111 21.9008 73.4332 22.2567 73.417 22.6287ZM77.1696 23.0654V23.1947H73.3847C73.3847 23.4049 73.417 23.6314 73.4979 23.8255C73.5788 24.0358 73.692 24.2138 73.8537 24.3594C74.0155 24.505 74.1934 24.6344 74.4037 24.6991C74.5978 24.78 74.8242 24.8123 75.0345 24.7961C75.3418 24.7961 75.6491 24.7153 75.9241 24.5697C76.1991 24.4079 76.4255 24.1975 76.5873 23.9225L77.1049 24.3918C76.8784 24.7314 76.5711 25.0224 76.2152 25.2165C75.8594 25.4106 75.455 25.5078 75.0345 25.4916C74.711 25.4916 74.3875 25.4591 74.0963 25.3297C73.8052 25.2165 73.5302 25.0386 73.3038 24.8121C73.0774 24.5857 72.9156 24.3107 72.8024 24.0034C72.6892 23.6961 72.6406 23.3728 72.673 23.0654C72.673 21.6421 73.595 20.623 74.986 20.623C76.4902 20.6554 77.1857 21.6906 77.1857 23.0493" fill="#1D1D1B"/>
<path d="M77.8327 23.0992C77.8327 22.7757 77.8812 22.4522 77.9945 22.1449C78.1077 21.8375 78.3018 21.5626 78.5283 21.3361C78.7547 21.1097 79.0458 20.9317 79.3531 20.8185C79.6605 20.7053 79.9839 20.6568 80.3074 20.673C80.8574 20.673 81.4073 20.8185 81.8764 21.1097L81.5367 21.7243C81.1647 21.4979 80.7442 21.3685 80.3074 21.3523C79.8384 21.3523 79.4017 21.5302 79.0782 21.8699C78.7547 22.1934 78.5606 22.6463 78.5606 23.0992C78.5606 23.5521 78.7385 24.0049 79.0782 24.3284C79.4017 24.6519 79.8545 24.846 80.3074 24.846C80.7442 24.846 81.1647 24.7005 81.5367 24.474L81.8764 25.0887C81.4073 25.3798 80.8735 25.5254 80.3074 25.5254C79.9839 25.5415 79.6605 25.493 79.3531 25.3798C79.0458 25.2666 78.7708 25.0887 78.5444 24.8622C78.3018 24.6358 78.1239 24.3608 78.0107 24.0696C77.8974 23.7623 77.8327 23.4388 77.8489 23.1153L77.8327 23.0992Z" fill="#1D1D1B"/>
<path d="M56.9027 10.5781C57.2909 10.5781 57.6791 10.4973 58.0511 10.3517C58.4069 10.1899 58.7304 9.96349 59.0054 9.68852C59.2803 9.39738 59.4906 9.07388 59.6362 8.70187C59.7656 8.32985 59.8303 7.94165 59.8141 7.53729C59.8303 7.14909 59.7656 6.7609 59.6362 6.38888C59.4906 6.01686 59.2803 5.69337 59.0054 5.40222C58.7304 5.12725 58.4069 4.9008 58.0349 4.75523C57.679 4.60966 57.2909 4.52879 56.8865 4.54496C56.1101 4.52879 55.3661 4.81993 54.8161 5.3537C54.2662 5.88746 53.9427 6.61533 53.9265 7.39171V7.55346C53.9265 7.95783 53.975 8.34602 54.1206 8.71804C54.2662 9.09006 54.4926 9.42973 54.7676 9.7047C55.0426 9.99584 55.3822 10.2223 55.7542 10.3679C56.1263 10.5134 56.5145 10.5943 56.9027 10.5943V10.5781ZM56.9027 3.00836C59.523 3.00836 61.6419 4.93315 61.6419 7.53729C61.6419 8.75039 61.1404 9.91497 60.2832 10.7561C59.4259 11.6133 58.2613 12.0824 57.0482 12.0824C56.4659 12.1147 55.8998 12.0177 55.3661 11.7912C54.8161 11.581 54.3309 11.2413 53.9427 10.8046H53.8456V17.4039H52.1149V8.26515C52.1149 5.04638 53.9589 2.99219 56.9027 2.99219" fill="#1D1D1B"/>
<path d="M68.047 10.5614C68.6455 10.5614 69.2278 10.3997 69.713 10.06C70.1983 9.72033 70.5865 9.25126 70.7806 8.70132C70.9261 8.3293 70.9908 7.9411 70.9747 7.55291C70.9747 7.16472 70.9261 6.76035 70.7806 6.40451C70.635 6.03249 70.4247 5.69282 70.1498 5.41785C69.8748 5.14288 69.5513 4.91643 69.1793 4.75468C68.8073 4.60911 68.4191 4.52824 68.0309 4.52824C67.6427 4.52824 67.2383 4.60911 66.8825 4.75468C66.5266 4.91643 66.187 5.14288 65.912 5.41785C65.637 5.70899 65.4268 6.03249 65.2812 6.40451C65.1356 6.77652 65.0709 7.16472 65.0871 7.55291C65.0709 7.9411 65.1356 8.34547 65.265 8.71749C65.4106 9.08951 65.6208 9.42918 65.8958 9.70415C66.1708 9.99529 66.4943 10.2217 66.8663 10.3673C67.2383 10.5129 67.6265 10.5938 68.0147 10.5938L68.047 10.5614ZM63.2593 7.55291C63.2593 4.93261 65.4429 3.00781 68.047 3.00781C70.6512 3.00781 72.8348 4.93261 72.8348 7.55291C72.8348 10.1732 70.6512 12.098 68.047 12.098C65.4429 12.098 63.2593 10.1732 63.2593 7.55291Z" fill="#1D1D1B"/>
<path d="M79.2399 12.0824C76.4902 12.0824 74.4199 10.1899 74.4199 7.53729C74.4199 4.88463 76.4579 2.99219 79.159 2.99219C81.2618 2.99219 83.2189 4.12442 83.7041 6.30801H81.9249C81.7146 5.77424 81.3427 5.30517 80.8574 4.99785C80.3722 4.69053 79.806 4.52879 79.2238 4.57731C78.8194 4.57731 78.4312 4.64185 78.0592 4.78742C77.6872 4.93299 77.3636 5.1596 77.0725 5.45075C76.7975 5.74189 76.5873 6.08156 76.4417 6.45358C76.2961 6.8256 76.2476 7.22997 76.2638 7.63433C76.2476 8.02253 76.3123 8.4269 76.4579 8.79891C76.6035 9.17093 76.8299 9.5106 77.1049 9.78557C77.396 10.0605 77.7357 10.2546 78.1077 10.4002C78.4797 10.5458 78.8679 10.6105 79.2723 10.5943C79.8546 10.6267 80.4369 10.4811 80.9383 10.1414C81.4235 9.81792 81.7955 9.33268 81.9896 8.78274H83.785C83.5262 9.7694 82.9278 10.6428 82.1029 11.2413C81.2779 11.8398 80.2751 12.1471 79.2561 12.1147" fill="#1D1D1B"/>
<path d="M90.2388 10.8543L87.3759 4.83732H87.3274V11.9057H85.6452V3.1875H88.3302L91.1608 9.15598H91.2255L94.056 3.20368H96.741V11.9057H95.0589V4.83732H94.9942L92.1636 10.8381L90.2388 10.8543Z" fill="#1D1D1B"/>
<path d="M103.389 10.5614C103.777 10.5614 104.181 10.4967 104.537 10.3511C104.893 10.2056 105.233 9.97912 105.508 9.68797C105.783 9.413 105.993 9.07333 106.139 8.70132C106.284 8.3293 106.349 7.9411 106.317 7.55291C106.333 7.16472 106.268 6.76035 106.122 6.40451C105.977 6.03249 105.767 5.69282 105.492 5.41785C105.217 5.1267 104.893 4.91643 104.521 4.75468C104.165 4.60911 103.761 4.52824 103.373 4.52824C102.985 4.52824 102.58 4.60911 102.224 4.75468C101.868 4.91643 101.529 5.14288 101.254 5.41785C100.979 5.70899 100.769 6.03249 100.623 6.40451C100.494 6.77652 100.429 7.16472 100.429 7.55291C100.413 7.9411 100.477 8.34547 100.607 8.71749C100.736 9.08951 100.947 9.42918 101.221 9.72032C101.496 10.0115 101.82 10.2379 102.192 10.3997C102.564 10.5452 102.952 10.6261 103.34 10.6261V10.5776L103.389 10.5614ZM98.6012 7.55291C98.6012 4.93261 100.785 3.00781 103.389 3.00781C105.993 3.00781 108.177 4.94878 108.177 7.55291C108.177 10.157 105.993 12.098 103.389 12.098C100.785 12.098 98.6012 10.1732 98.6012 7.55291Z" fill="#1D1D1B"/>
<path d="M109.018 11.9713V10.1759H109.05C109.244 10.1759 109.422 10.1436 109.6 10.0627C109.778 9.98182 109.94 9.88494 110.069 9.73937C110.392 9.36735 110.538 8.72019 110.732 7.78206L110.991 6.3912C111.282 4.7899 111.864 3.15625 114.258 3.15625H117.671V11.9066H115.924V4.80591H114.566C113.207 4.80591 112.916 5.17793 112.592 7.03802L112.333 8.332C112.139 9.52893 111.832 10.5643 111.217 11.2274C110.959 11.4862 110.635 11.6965 110.295 11.8421C109.956 11.9715 109.568 12.036 109.212 12.0198H109.034L109.018 11.9713Z" fill="#1D1D1B"/>
<path d="M124.367 10.5614C124.756 10.5614 125.144 10.4967 125.516 10.3511C125.872 10.1894 126.195 9.97912 126.454 9.68797C126.729 9.413 126.939 9.07334 127.085 8.70132C127.23 8.3293 127.295 7.94111 127.263 7.55291C127.279 7.16472 127.214 6.76035 127.069 6.40451C126.939 6.03249 126.713 5.69282 126.438 5.41785C126.033 4.9973 125.5 4.70616 124.917 4.57676C124.335 4.46354 123.737 4.51206 123.187 4.75468C122.831 4.91643 122.507 5.14288 122.232 5.41785C121.957 5.70899 121.747 6.03249 121.618 6.40451C121.472 6.77653 121.424 7.16472 121.424 7.55291C121.407 7.94111 121.456 8.34547 121.602 8.71749C121.731 9.08951 121.957 9.42918 122.232 9.72032C122.491 10.0115 122.815 10.2379 123.171 10.3835C123.543 10.5291 123.931 10.6099 124.319 10.6099V10.5776L124.367 10.5614ZM119.58 7.55291C119.58 4.93261 121.763 3.00781 124.367 3.00781C126.972 3.00781 129.139 4.93261 129.139 7.55291C129.139 8.16755 128.993 8.76618 128.751 9.33229C128.508 9.89841 128.152 10.3997 127.699 10.8202C127.263 11.2407 126.729 11.5804 126.163 11.7907C125.597 12.0171 124.982 12.1142 124.367 12.098C121.78 12.098 119.58 10.1732 119.58 7.55291Z" fill="#1D1D1B"/>
<path d="M136.806 10.3222V4.74192H135.172C134.121 4.74192 133.749 5.58301 133.538 6.47262L133.166 8.15479C133.037 8.89883 132.746 9.59434 132.293 10.1928V10.3222H136.79H136.806ZM131.145 14.0262H129.462V10.2899H130.595C131.112 9.73991 131.371 8.89883 131.598 7.87982L131.97 6.26235C132.325 4.70957 132.989 3.14062 135.156 3.14062H138.536V10.2899H139.798V14.0262H138.116V11.9073H131.145V14.0262Z" fill="#1D1D1B"/>
<path d="M146.786 0H148.581V1.81157H146.786V0ZM148.613 6.71235C148.5 6.06536 148.144 5.48323 147.627 5.07887C147.109 4.6745 146.462 4.48024 145.799 4.51259C145.136 4.48024 144.489 4.69051 143.955 5.09488C143.421 5.49925 143.049 6.06536 142.904 6.71235H148.597H148.613ZM142.871 0H144.667V1.81157H142.871V0ZM145.88 12.0985C143.098 12.0985 141.092 10.2061 141.092 7.55344C141.092 4.90078 143.13 3.0085 145.831 3.0085C147.918 3.0085 150.441 4.38335 150.441 7.69917V8.07119H142.839C143.017 9.52691 144.149 10.5781 145.896 10.5781C146.915 10.5781 148.144 10.2063 148.468 9.31664H150.231C149.713 11.2253 147.691 12.0985 145.896 12.0985" fill="#1D1D1B"/>
<path d="M158.642 3.20368V6.64889H160.097L162.168 3.20368H164.06L161.521 7.36058L164.287 11.9219H162.33L160.162 8.25019H158.674V11.9219H157.024V8.23402H155.536L153.336 11.9057H151.379L154.145 7.34441L151.589 3.1875H153.482L155.536 6.66507H156.992V3.20368H158.642Z" fill="#1D1D1B"/>
<path d="M169.721 10.5626C170.029 10.5788 170.352 10.5304 170.643 10.4172C170.935 10.304 171.21 10.1422 171.42 9.9158C171.646 9.70553 171.824 9.4304 171.937 9.13925C172.051 8.8481 172.115 8.54095 172.115 8.21745C172.115 7.74838 172.002 7.27932 171.743 6.89112C171.485 6.48676 171.129 6.17944 170.692 5.98534C170.255 5.79124 169.786 5.74256 169.317 5.82343C169.01 5.83961 168.702 5.93682 168.427 6.06621C168.152 6.21179 167.894 6.40572 167.7 6.63217C167.489 6.87479 167.344 7.14976 167.247 7.4409C167.15 7.73205 167.117 8.05554 167.133 8.36286C167.15 8.67018 167.247 8.9775 167.376 9.25247C167.522 9.52744 167.716 9.78624 167.942 9.98034C168.185 10.1906 168.46 10.3363 168.751 10.4334C169.042 10.5304 169.366 10.5628 169.673 10.5466H169.721V10.5626ZM165.516 7.99101L165.484 3.20312H167.247V5.66184H167.295C167.635 5.2413 168.055 4.90163 168.541 4.67519C169.026 4.44874 169.56 4.33552 170.093 4.35169C170.595 4.35169 171.112 4.4324 171.582 4.61033C172.051 4.80442 172.487 5.07939 172.843 5.43524C173.199 5.79108 173.49 6.21179 173.684 6.68085C173.878 7.14992 173.975 7.65117 173.975 8.16877C173.975 10.4009 172.196 12.1154 169.77 12.1154C169.22 12.1316 168.67 12.0509 168.136 11.8568C167.619 11.6627 167.15 11.3552 166.745 10.967C166.341 10.5788 166.034 10.1261 165.807 9.60848C165.597 9.09089 165.484 8.54095 165.484 7.99101" fill="#1D1D1B"/>
<path d="M21.9006 26.2216L4.6583 15.9668V25.3805H0V7.7662L21.3992 20.5119L43.3806 1.83008V25.3805H38.7223V11.9069L21.9006 26.2216Z" fill="#CED741"/>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,10 +0,0 @@
<svg width="43" height="7" viewBox="0 0 43 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.95016 4.59774H2.99505V1.24895C2.99505 1.16641 3.00684 1.07208 3.04221 1.00133C2.95967 1.03671 2.86534 1.0485 2.77101 1.03671H1.16737C1.07303 1.03671 0.978707 1.03671 0.896166 1.00133C0.931541 1.08387 0.943324 1.16641 0.943324 1.24895V4.59774H0V0.152344H3.93836V4.59774H3.95016Z" fill="#1D1D1B"/>
<path d="M6.00187 2.3712C5.99007 2.55986 6.01367 2.76032 6.08442 2.93719C6.14337 3.12586 6.24949 3.29094 6.39099 3.43243C6.5207 3.57393 6.68578 3.68005 6.87444 3.7626C7.06311 3.84514 7.25177 3.86872 7.44043 3.86872C8.28942 3.86872 8.77288 3.31452 8.77288 2.38299C8.77288 1.45146 8.26584 0.897258 7.44043 0.897258C7.25177 0.897258 7.06311 0.932633 6.87444 1.00338C6.68578 1.07413 6.5325 1.19205 6.40279 1.32175C6.26129 1.46325 6.16695 1.62833 6.0962 1.817C6.02545 1.99387 6.00188 2.19432 6.01367 2.38299L6.00187 2.3712ZM9.77516 2.3712C9.77516 3.7508 8.879 4.7295 7.6291 4.7295C7.28715 4.74129 6.95699 4.65875 6.66221 4.47009C6.36742 4.29321 6.14336 4.0338 6.00187 3.71543H5.95471C6.02546 4.02201 6.04904 4.32859 6.04904 4.64696V6.48644H5.09393V0.142602H6.01367C6.01367 0.425599 6.01367 0.708594 5.95471 0.99159H5.99008C6.13158 0.685011 6.36742 0.425599 6.66221 0.248726C6.95699 0.0718534 7.28715 -0.010686 7.6291 0.00110547C8.879 0.00110547 9.77516 0.979801 9.77516 2.35941" fill="#1D1D1B"/>
<path d="M11.3552 2.3717C11.3552 2.56037 11.3788 2.74903 11.4378 2.9259C11.5085 3.10278 11.6146 3.26786 11.7444 3.39756C11.8859 3.53906 12.0391 3.6334 12.216 3.70414C12.3929 3.77489 12.5933 3.79848 12.782 3.78668C12.9707 3.79848 13.1593 3.77489 13.3362 3.70414C13.5131 3.6334 13.6782 3.52727 13.8079 3.39756C13.9376 3.26786 14.0437 3.10278 14.1144 2.9259C14.1852 2.74903 14.2088 2.56037 14.197 2.3717C14.2088 2.18304 14.1852 1.98259 14.1144 1.80571C14.0083 1.53451 13.8197 1.29868 13.5838 1.13359C13.348 0.968514 13.065 0.885857 12.7702 0.885857C12.4754 0.885857 12.1924 0.968514 11.9566 1.13359C11.7208 1.29868 11.5321 1.53451 11.426 1.80571C11.3552 1.98259 11.3198 2.17125 11.3434 2.3717M15.1993 2.3717C15.1993 2.69008 15.1403 3.00844 15.0224 3.29144C14.9045 3.58623 14.7158 3.84564 14.4918 4.06968C14.2677 4.29372 13.9965 4.47059 13.7017 4.58851C13.4069 4.70642 13.0886 4.75359 12.7702 4.7418C12.4518 4.7418 12.1335 4.69463 11.8387 4.58851C11.5439 4.48238 11.2727 4.30551 11.0486 4.08147C10.8246 3.85743 10.6359 3.5979 10.518 3.30312C10.3883 3.00833 10.3294 2.70187 10.3294 2.3835C10.3294 1.91184 10.4709 1.44017 10.7539 1.05105C11.0251 0.661935 11.4024 0.355356 11.8505 0.178483C12.1453 0.0605682 12.4636 0.0134031 12.782 0.0251946C13.1004 0.0134031 13.4187 0.0605682 13.7135 0.178483C14.0083 0.296398 14.2795 0.46148 14.5036 0.685519C14.7276 0.909557 14.9045 1.16885 15.0224 1.46364C15.1403 1.75843 15.1993 2.07692 15.1875 2.3835H15.1993V2.3717Z" fill="#1D1D1B"/>
<path d="M16.7675 1.92375V1.94733C16.9444 1.86479 17.1449 1.82942 17.3453 1.84121H18.4419C18.9018 1.84121 19.0551 1.86479 19.1494 1.92375V1.90017C19.1494 1.75867 19.1141 1.61717 19.0669 1.48747C19.0079 1.35776 18.9136 1.23984 18.8075 1.14551C18.7014 1.05118 18.5717 0.98043 18.4302 0.933264C18.2887 0.886098 18.1472 0.874308 17.9939 0.8861C17.6873 0.862516 17.3925 0.968639 17.1567 1.1573C16.9208 1.35776 16.7793 1.62896 16.744 1.93554H16.7558L16.7675 1.92375ZM20.1753 2.37183V2.56049H17.3218C17.1213 2.58408 16.9208 2.56049 16.744 2.48974H16.7204L16.7558 2.61945C16.7558 2.79632 16.8029 2.9614 16.8737 3.11469C16.9444 3.26798 17.0506 3.40948 17.1803 3.5274C17.31 3.64531 17.4632 3.72785 17.6283 3.78681C17.7934 3.84577 17.9585 3.86935 18.1354 3.85756C18.3948 3.85756 18.6542 3.7986 18.8782 3.68069C19.1141 3.56277 19.3145 3.39769 19.4796 3.19723L20.0574 3.83398C19.8334 4.12876 19.5386 4.36459 19.1966 4.51788C18.8664 4.68297 18.5009 4.75371 18.1236 4.75371C17.817 4.7655 17.5104 4.71834 17.2156 4.61222C16.9208 4.50609 16.6614 4.32922 16.4374 4.11697C16.2251 3.89293 16.0483 3.63352 15.9421 3.33873C15.836 3.04395 15.7889 2.73737 15.8124 2.43079C15.8124 0.992222 16.7086 0.0371094 18.0646 0.0371094C19.4206 0.0371094 20.1753 0.921475 20.1753 2.38362" fill="#1D1D1B"/>
<path d="M23.5123 4.03385L23.2883 3.2437C23.1703 2.79562 23.0171 2.64233 22.6515 2.64233H22.2388C22.1327 2.64233 22.0384 2.64245 21.9322 2.61887C21.9676 2.74858 21.9912 2.88995 21.9794 3.01966V4.58793H21.0243V0.142532H21.9794V1.52226C21.9794 1.65196 21.9794 1.78155 21.9322 1.91126C22.0384 1.91126 22.1327 1.91126 22.2388 1.91126H22.6515C23.0289 1.91126 23.1232 1.82884 23.2883 1.36897L23.6066 0.578819C23.7363 0.260448 23.9958 0.130859 24.4674 0.130859H24.9391V0.97973H24.774C24.6679 0.967939 24.55 0.97973 24.4556 1.05048C24.3613 1.10944 24.3023 1.20377 24.2787 1.32168L24.1137 1.7108C23.984 2.08813 23.6892 2.25333 23.1704 2.25333V2.28859C23.7246 2.28859 23.9957 2.46546 24.1137 2.86637L24.3023 3.50323C24.3731 3.73906 24.4438 3.77432 24.7504 3.77432H24.998V4.58793H24.4438C23.9368 4.61151 23.6538 4.43476 23.5359 4.03385" fill="#1D1D1B"/>
<path d="M29.5731 0.152344V1.02492H28.1935C28.0991 1.02492 28.0048 1.02491 27.9223 0.98954C27.9576 1.07208 27.9694 1.15462 27.9694 1.23716V4.59774H26.9907V1.24895C26.9907 1.16641 26.9907 1.08387 27.0379 1.00133C26.9554 1.03671 26.861 1.0485 26.7667 1.03671H25.3871V0.164133H29.5613L29.5731 0.152344Z" fill="#1D1D1B"/>
<path d="M33.8416 2.37002C33.8299 2.57048 33.8534 2.75914 33.9242 2.9478C33.9949 3.13647 34.0893 3.30155 34.2308 3.44305C34.3605 3.58455 34.5256 3.70246 34.7024 3.785C34.8793 3.86754 35.0798 3.90292 35.2684 3.90292C35.4571 3.90292 35.6575 3.86754 35.8344 3.785C36.0113 3.70246 36.1764 3.59634 36.3061 3.45484C36.4358 3.31334 36.5419 3.13647 36.6009 2.9596C36.6716 2.77093 36.6952 2.58227 36.6834 2.38181C36.6834 2.01628 36.5301 1.67432 36.2825 1.41491C36.0349 1.15549 35.6929 1.00221 35.3274 0.978622C34.9736 0.955039 34.6081 1.07295 34.3369 1.30878C34.0539 1.53282 33.877 1.86298 33.8299 2.21673C33.8299 2.2639 33.8299 2.31106 33.8299 2.37002H33.8416ZM37.6975 2.37002C37.6975 2.85347 37.5796 3.32513 37.3202 3.72604C37.0607 4.12696 36.6834 4.44533 36.2471 4.64578C35.8108 4.83445 35.3156 4.8934 34.8439 4.81086C34.3723 4.72832 33.936 4.50428 33.594 4.16233C33.2521 3.83217 33.0162 3.39588 32.9219 2.92422C32.8276 2.45256 32.8747 1.96911 33.0516 1.52103C33.2285 1.07295 33.5469 0.695625 33.936 0.42442C34.3369 0.153215 34.8086 0.0117188 35.2802 0.0117188C35.5986 0.0117188 35.9052 0.0588838 36.1999 0.165007C36.4947 0.282923 36.7777 0.448004 37.0018 0.672043C37.2258 0.896081 37.4027 1.15549 37.5206 1.45028C37.6385 1.74507 37.6975 2.05165 37.6857 2.37002" fill="#1D1D1B"/>
<path d="M42.19 0.152344V1.02492H40.8104C40.7161 1.02492 40.6218 1.02491 40.5392 0.98954C40.5746 1.07208 40.5864 1.15462 40.5864 1.23716V4.59774H39.6313V1.24895C39.6313 1.16641 39.6431 1.08387 39.6784 1.00133C39.5959 1.03671 39.5016 1.0485 39.4072 1.03671H38.004V0.164133H42.19V0.152344Z" fill="#1D1D1B"/>
</svg>

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

View File

@ -1,18 +0,0 @@
<svg width="23" height="25" viewBox="0 0 23 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_710_108)">
<path d="M6.03434 0C6.49147 0.212256 6.64224 0.586749 6.6356 1.10745C6.6163 2.62723 6.62897 4.147 6.62837 5.66742C6.62837 6.3292 6.32562 6.65111 5.69963 6.65559C5.30221 6.65816 4.90478 6.65816 4.50676 6.65559C3.87051 6.65175 3.56476 6.32727 3.56415 5.65203C3.56295 4.15662 3.57501 2.66057 3.55752 1.16516C3.55149 0.639332 3.67572 0.228928 4.15094 0L6.03434 0Z" fill="#E94E1C"/>
<path d="M18.8026 0C19.27 0.219951 19.4069 0.613682 19.4003 1.13695C19.3822 2.64069 19.3942 4.14444 19.3936 5.64818C19.3936 6.32727 19.0909 6.65175 18.4564 6.65559C18.0433 6.65816 17.6308 6.66073 17.2177 6.65495C16.6424 6.64598 16.3288 6.30739 16.3282 5.69563C16.3264 4.17586 16.3397 2.65544 16.321 1.13566C16.3143 0.611758 16.4518 0.21931 16.9198 0H18.8032L18.8026 0Z" fill="#E94E1C"/>
<path d="M8.19153 2.7855H14.8085C14.8085 2.88554 14.8085 2.97275 14.8085 3.05996C14.8085 3.93848 14.806 4.81764 14.8085 5.69616C14.8127 6.98188 15.546 7.95146 16.725 8.22271C16.8878 8.2599 17.0591 8.26183 17.2268 8.26375C17.6628 8.26888 18.0994 8.26824 18.5354 8.26504C19.9515 8.25606 20.9381 7.20825 20.9477 5.69873C20.9532 4.82021 20.9489 3.94105 20.9489 3.06253C20.9489 2.97596 20.9489 2.88875 20.9489 2.80282C21.9344 2.77909 22.9095 3.72558 22.9759 4.74454C22.9909 4.97154 22.9982 5.19919 22.9982 5.42684C22.9994 11.1225 22.9988 16.8181 22.9994 22.5144C22.9994 22.9748 22.953 23.4205 22.7298 23.8302C22.3348 24.5549 21.7456 24.9415 20.9622 24.9973C20.9085 25.0012 20.8549 24.9999 20.8018 24.9999C14.6022 24.9999 8.40321 24.9999 2.20362 24.9999C1.13377 24.9999 0.338922 24.3618 0.0681419 23.2711C0.0126592 23.0466 0.00301001 22.8042 0.00301001 22.5708C-5.35489e-06 16.7764 -0.000608428 10.9827 0.00120079 5.18957C0.00120079 4.01736 0.545173 3.20617 1.54627 2.874C1.69704 2.82398 1.85746 2.80602 2.05044 2.76562C2.05044 2.89067 2.04984 2.98558 2.05044 3.07984C2.05889 4.08854 2.03356 5.09916 2.08542 6.10529C2.14332 7.2262 3.15105 8.21951 4.20462 8.25542C4.74739 8.27401 5.29136 8.27209 5.83473 8.26311C7.18561 8.24067 8.18008 7.16913 8.18973 5.72759C8.19576 4.84073 8.19093 3.95387 8.19093 3.06702C8.19093 2.97916 8.19093 2.89131 8.19093 2.7855H8.19153ZM11.5 11.5213C8.92065 11.5213 6.34131 11.5213 3.76196 11.5213C3.04491 11.5213 2.69211 11.8952 2.69211 12.6615C2.69091 15.5991 2.69091 18.5367 2.69211 21.4743C2.69211 22.2361 3.04793 22.6093 3.76739 22.6093C8.911 22.6093 14.054 22.6093 19.1976 22.6093C19.9123 22.6093 20.2687 22.2303 20.2687 21.4685C20.2693 18.5309 20.2693 15.5933 20.2687 12.6557C20.2687 11.8965 19.9117 11.522 19.1916 11.522C16.6273 11.522 14.0637 11.522 11.4994 11.522L11.5 11.5213Z" fill="#E94E1C"/>
<path d="M10.0321 14.7708C10.0321 14.4617 10.0273 14.1527 10.0333 13.8436C10.0411 13.4595 10.245 13.235 10.605 13.2299C11.2015 13.2215 11.7985 13.2215 12.3955 13.2299C12.755 13.235 12.9618 13.4595 12.9661 13.8442C12.9727 14.4624 12.9715 15.0805 12.9667 15.6987C12.9636 16.104 12.7568 16.3381 12.372 16.3464C11.7907 16.3586 11.2087 16.3586 10.6279 16.3464C10.2353 16.3381 10.0363 16.0995 10.0327 15.6744C10.0303 15.3736 10.0327 15.0722 10.0327 14.7715L10.0321 14.7708Z" fill="#E94E1C"/>
<path d="M6.84367 21.2885C6.56082 21.2885 6.27738 21.2911 5.99454 21.2885C5.59953 21.2847 5.38905 21.0814 5.38242 20.6697C5.37277 20.0439 5.37277 19.4167 5.38242 18.7908C5.38845 18.3945 5.60013 18.1765 5.97403 18.1714C6.54756 18.1637 7.12168 18.165 7.69581 18.1707C8.08057 18.1746 8.30431 18.3869 8.31396 18.794C8.32964 19.4199 8.32964 20.0471 8.31396 20.6729C8.30371 21.084 8.08298 21.2853 7.69279 21.2892C7.40995 21.2917 7.12651 21.2892 6.84367 21.2892V21.2885Z" fill="#E94E1C"/>
<path d="M11.4898 21.2884C11.2069 21.2884 10.9235 21.291 10.6406 21.2878C10.2511 21.2827 10.0376 21.0665 10.0334 20.66C10.0273 20.0418 10.0279 19.4237 10.0334 18.8055C10.037 18.413 10.248 18.177 10.6153 18.1713C11.2039 18.1617 11.7937 18.1617 12.3823 18.1713C12.7502 18.177 12.9625 18.4117 12.9661 18.8036C12.9715 19.4217 12.9715 20.0399 12.9661 20.6581C12.9625 21.0659 12.7502 21.2833 12.3618 21.2884C12.0711 21.2923 11.7805 21.2891 11.4898 21.2891V21.2884Z" fill="#E94E1C"/>
<path d="M17.6194 19.7512C17.6194 20.0603 17.6272 20.3694 17.6176 20.6785C17.6049 21.078 17.3993 21.2851 17.0199 21.2877C16.4464 21.2915 15.8723 21.2915 15.2982 21.2877C14.9122 21.2851 14.6945 21.0767 14.6848 20.6631C14.6704 20.0456 14.6716 19.4267 14.6848 18.8086C14.6939 18.3885 14.9152 18.1731 15.3132 18.1699C15.8795 18.1654 16.4458 18.1641 17.0121 18.1699C17.4005 18.1737 17.6025 18.3898 17.6212 18.7989C17.6218 18.815 17.6218 18.8317 17.6218 18.8477C17.6218 19.1484 17.6218 19.4498 17.6218 19.7506H17.6206L17.6194 19.7512Z" fill="#E94E1C"/>
<path d="M5.37943 14.7748C5.37943 14.4741 5.374 14.1727 5.38063 13.8719C5.39028 13.4404 5.58749 13.2313 5.99275 13.2275C6.55904 13.2224 7.12532 13.2224 7.69161 13.2275C8.09386 13.2307 8.30734 13.4404 8.31579 13.8655C8.32785 14.4754 8.32725 15.0858 8.31579 15.6957C8.30795 16.117 8.09325 16.3401 7.69764 16.3465C7.13135 16.3555 6.56507 16.3549 5.99878 16.3465C5.58809 16.3408 5.38787 16.1195 5.38003 15.6771C5.3746 15.3763 5.37882 15.0749 5.37882 14.7742L5.37943 14.7748Z" fill="#E94E1C"/>
<path d="M16.1847 13.2276C16.4754 13.2276 16.7667 13.2205 17.0573 13.2295C17.3993 13.2404 17.6073 13.4437 17.6146 13.804C17.6266 14.4549 17.6266 15.1058 17.6146 15.756C17.6079 16.1215 17.3999 16.337 17.0423 16.3453C16.4531 16.3594 15.8639 16.3588 15.2747 16.3453C14.9104 16.337 14.6981 16.1267 14.6873 15.74C14.6692 15.0981 14.668 14.4543 14.6891 13.8124C14.7017 13.4244 14.9194 13.2346 15.2891 13.2276C15.5876 13.2218 15.8862 13.2263 16.1847 13.2263V13.2276Z" fill="#E94E1C"/>
</g>
<defs>
<clipPath id="clip0_710_108">
<rect width="23" height="25" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -1,3 +0,0 @@
<svg width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.86947 16C5.74061 15.9018 5.59148 15.8204 5.48611 15.7023C3.88866 13.907 2.43303 12.0143 1.29471 9.9096C0.788564 8.97343 0.356982 8.00635 0.133695 6.96494C-0.17753 5.51315 0.0542674 4.14234 0.832735 2.86777C1.63065 1.56229 2.79288 0.684802 4.29592 0.249382C5.64862 -0.142222 6.99037 -0.0706298 8.29403 0.450074C9.45585 0.914444 10.3762 1.66909 11.0578 2.6929C11.5736 3.4675 11.8735 4.31682 11.9716 5.22874C12.0688 6.13283 11.9084 7.00876 11.613 7.8659C11.1716 9.14595 10.5176 10.3258 9.78207 11.4651C8.80544 12.9775 7.69063 14.3929 6.47977 15.7367C6.38453 15.8423 6.24675 15.9124 6.12883 15.9992H5.86988L5.86947 16ZM6.00118 8.70975C7.67036 8.70427 9.01657 7.39645 9.0109 5.78504C9.00523 4.18655 7.62862 2.86581 5.98821 2.88498C4.31821 2.90493 2.98335 4.20298 2.98659 5.80499C2.98983 7.40662 4.34739 8.71483 6.00118 8.70936V8.70975Z" fill="#E94E1C"/>
</svg>

Before

Width:  |  Height:  |  Size: 964 B

View File

@ -1,3 +0,0 @@
<svg width="39" height="34" viewBox="0 0 39 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M38.9992 1.06756C38.805 2.00414 38.6101 2.9453 38.4159 3.88722C37.8181 6.7855 37.2256 9.68454 36.6232 12.5813C35.9493 15.8238 35.2631 19.0633 34.5891 22.3058C33.9434 25.4117 33.3082 28.5191 32.667 31.6258C32.5726 32.083 32.4728 32.5395 32.3746 32.9959C32.1606 33.9966 31.3701 34.2928 30.5377 33.6867C28.8905 32.4876 27.241 31.2915 25.5938 30.0923C24.3548 29.1908 23.1195 28.284 21.879 27.3864C21.0375 26.7773 20.445 26.7811 19.6507 27.4223C18.3789 28.4489 17.1193 29.4901 15.8552 30.5259C15.5711 30.7587 15.2848 30.9892 15.0045 31.2266C14.2194 31.8899 13.4053 31.6708 13.0984 30.6907C12.2828 28.0909 11.4794 25.4865 10.6698 22.8844C10.366 21.9081 10.069 20.9288 9.74303 19.9602C9.68896 19.7991 9.52828 19.6152 9.37368 19.5564C6.55902 18.487 3.7375 17.4336 0.916747 16.3795C0.159011 16.0963 -0.15246 15.5757 0.0706724 14.9376C0.203181 14.5575 0.50399 14.3743 0.860393 14.2369C4.81128 12.7126 8.75988 11.1837 12.7085 9.65553C18.8214 7.29081 24.9335 4.92532 31.0464 2.56059C33.1506 1.74691 35.2547 0.932459 37.3604 0.121063C38.1219 -0.17281 38.7403 0.0790813 38.9406 0.759951C38.9688 0.855365 38.9787 0.956121 39 1.06756H38.9992ZM14.1356 26.8505C14.4349 26.8544 14.5727 26.6681 14.6085 26.4055C14.7448 25.4148 14.8857 24.424 14.9946 23.4294C15.1066 22.4005 15.4493 21.5188 16.2436 20.7952C18.3454 18.8824 20.4123 16.9298 22.492 14.9933C24.702 12.9355 26.9113 10.8768 29.1205 8.81742C29.5569 8.41058 29.9902 8.00068 30.4265 7.5946C30.5789 7.45263 30.7106 7.2702 30.5164 7.11753C30.4121 7.0351 30.192 7.0954 30.0244 7.10303C29.9795 7.10532 29.9369 7.15036 29.8935 7.17631C26.6455 9.18075 23.3967 11.1852 20.1495 13.1912C17.644 14.7384 15.1378 16.2856 12.6361 17.8382C11.8746 18.3107 11.5974 19.0694 11.8426 19.9357C12.1076 20.8731 12.3704 21.8112 12.6361 22.7485C12.9804 23.9637 13.3269 25.1781 13.6726 26.3926C13.7411 26.6322 13.8188 26.8628 14.1364 26.849L14.1356 26.8505Z" fill="#1E1E1E"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,3 +0,0 @@
<svg width="61" height="34" viewBox="0 0 61 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 2.35486C0.56096 1.71436 1.31123 1.55661 2.12552 1.55389C4.883 1.54437 7.64187 1.51446 10.3993 1.52533C11.6521 1.53077 12.4567 2.15632 13.0093 3.27959C14.553 6.41548 16.144 9.52961 17.7837 12.6179C18.4783 13.9248 19.3636 15.131 20.5774 16.053C20.8544 16.2624 21.1703 16.4473 21.4974 16.5629C22.2421 16.8268 22.8101 16.6418 23.0912 15.9333C23.3947 15.1691 23.6299 14.3586 23.7538 13.5481C24.1784 10.7521 24.1881 7.95895 23.6021 5.16982C23.2861 3.66715 22.3632 2.8553 20.8711 2.56565C20.1194 2.41878 20.0582 2.21072 20.576 1.65044C21.3624 0.796437 22.3813 0.429268 23.5186 0.302799C26.8008 -0.0616503 30.0845 -0.167721 33.3556 0.385752C34.9995 0.664528 35.5201 1.24792 35.6843 2.93281C35.8374 4.5062 35.7149 6.10678 35.6941 7.69377C35.6704 9.47658 35.5855 11.2607 35.6091 13.0422C35.6203 13.8432 35.7219 14.6768 35.9752 15.4342C36.3942 16.6908 37.3658 16.8485 38.4 15.9986C39.9785 14.7013 41.0378 13.0164 42.1291 11.3546C43.8036 8.80751 45.1622 6.09998 46.3189 3.29454C46.9314 1.80683 47.2167 1.645 48.8328 1.63413C52.0468 1.61373 55.2609 1.56749 58.4749 1.54301C58.8674 1.54029 59.2711 1.56885 59.6525 1.65316C60.7716 1.90066 61.2449 2.50173 60.8774 3.5502C60.4264 4.83665 59.9072 6.15166 59.1389 7.2722C57.275 9.98925 55.2469 12.5975 53.2926 15.2547C52.6802 16.087 52.0385 16.9056 51.497 17.7828C50.7648 18.9686 50.8859 20.0157 51.877 21.0111C53.2731 22.4145 54.7305 23.7581 56.1461 25.1438C57.6898 26.6546 59.1806 28.2185 60.2691 30.0843C60.5935 30.6391 60.7981 31.2932 60.9067 31.9255C61.0612 32.8244 60.1995 33.6567 59.1041 33.7505C58.3942 33.8117 57.6801 33.8484 56.9674 33.8634C54.8057 33.9083 52.6398 33.8729 50.4809 33.9885C48.1619 34.1122 46.3036 33.231 44.7362 31.6862C43.4389 30.4066 42.2474 29.0263 40.9738 27.7221C40.4991 27.2353 39.9576 26.7933 39.3883 26.4167C38.4724 25.8101 37.7764 25.9203 37.0248 26.7145C36.0504 27.7439 35.8402 29.044 35.7108 30.3644C35.6676 30.8077 35.6857 31.2565 35.644 31.6998C35.5117 33.1154 35.0426 33.7355 33.6075 33.794C30.3253 33.9273 27.0096 34.1218 23.854 32.9128C19.7004 31.3204 16.1454 28.9025 13.3071 25.5055C7.8089 18.9278 3.71236 11.5463 0.238025 3.80586C0.160076 3.6318 0.0793418 3.45909 0 3.28502V2.35486Z" fill="#1E1E1E"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,24 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="18.383462132921178 25.688 428.8840803709428 351.12" style="max-height: 500px" width="428.8840803709428" height="351.12">
<g filter="url(#filter0_bd_886_68)">
<path shape-rendering="crispEdges" fill-opacity="0.34" fill="url(#paint0_linear_886_68)" d="M439 13H25C20.5817 13 17 16.5817 17 21V313C17 317.418 20.5817 321 25 321H210.6C211.649 321 212.5 321.851 212.5 322.9C212.5 327.097 215.903 330.5 220.1 330.5H242.9C247.097 330.5 250.5 327.097 250.5 322.9C250.5 321.851 251.351 321 252.4 321H439C443.418 321 447 317.418 447 313V21C447 16.5817 443.418 13 439 13Z"/>
<path shape-rendering="crispEdges" stroke-width="0.8" stroke="white" d="M439 12.6H25C20.3608 12.6 16.6 16.3608 16.6 21V313C16.6 317.639 20.3608 321.4 25 321.4H210.6C211.428 321.4 212.1 322.072 212.1 322.9C212.1 327.318 215.682 330.9 220.1 330.9H242.9C247.318 330.9 250.9 327.318 250.9 322.9C250.9 322.072 251.572 321.4 252.4 321.4H439C443.639 321.4 447.4 317.639 447.4 313V21C447.4 16.3608 443.639 12.6 439 12.6Z"/>
</g>
<defs>
<filter color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse" height="378.902" width="491.4" y="0.299219" x="0.299952" id="filter0_bd_886_68">
<feFlood result="BackgroundImageFix" flood-opacity="0"/>
<feGaussianBlur stdDeviation="4.35" in="BackgroundImageFix"/>
<feComposite result="effect1_backgroundBlur_886_68" operator="in" in2="SourceAlpha"/>
<feColorMatrix result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" type="matrix" in="SourceAlpha"/>
<feOffset dy="18" dx="14"/>
<feGaussianBlur stdDeviation="14.95"/>
<feComposite operator="out" in2="hardAlpha"/>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0" type="matrix"/>
<feBlend result="effect2_dropShadow_886_68" in2="effect1_backgroundBlur_886_68" mode="normal"/>
<feBlend result="shape" in2="effect2_dropShadow_886_68" in="SourceGraphic" mode="normal"/>
</filter>
<linearGradient gradientUnits="userSpaceOnUse" y2="370" x2="447" y1="174" x1="-38" id="paint0_linear_886_68">
<stop stop-color="white"/>
<stop stop-color="#EDEDED" offset="1"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -10,6 +10,7 @@ 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 ModalResetPassword from "@components/Modal/ModalResetPassword/ModalResetPassword";
import authHead from "assets/icons/authHead.svg";
@ -29,6 +30,7 @@ export const AuthBox = ({ title }) => {
const [error, setError] = useState(null);
const [modalError, setModalError] = useState(false);
const [modalReset, setModalReset] = useState(false);
const [modalReg, setModalReg] = useState(false);
const [showPassword, setShowPassword] = useState(false);
useEffect(() => {
@ -126,7 +128,19 @@ export const AuthBox = ({ title }) => {
Восстановить пароль
</span>
<ModalResetPassword active={modalReset} setActive={setModalReset} />
<ModalRegistration active={modalReg} setActive={setModalReg} />
</div>
<p className="auth-box__registration">
У вас ещё нет аккаунта? &nbsp;
<span
onClick={(e) => {
e.preventDefault();
setModalReg(true);
}}
>
Зарегистрироваться
</span>
</p>
</form>
</div>
);

View File

@ -117,45 +117,25 @@
}
&__body {
&__week-days {
div {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
@media (max-width: 680px) {
display: none;
}
p {
color: #9babc5;
font-size: 14px;
font-weight: 500;
text-align: center;
}
&-mobile {
display: none;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
@media (max-width: 680px) {
display: grid;
}
p {
color: #9babc5;
font-size: 14px;
font-weight: 500;
text-align: center;
}
}
}
margin: 20px 0 20px;
}
&__form {
display: grid;
grid-template-columns: repeat(7, 1fr);
display: flex;
flex-wrap: wrap;
justify-content: space-between;
button {
@ -173,7 +153,7 @@
.form-date {
width: 100%;
padding: 5px 0 0 0;
padding: 5px 0 0 15px;
height: 100%;
}
@ -225,10 +205,12 @@
@media (max-width: 550px) {
width: 60px;
height: 35px;
}
@media (max-width: 450px) {
width: 45px;
height: 35px;
}
}
}
@ -283,11 +265,6 @@
}
.form-box {
background-color: #fafbfe;
padding: 0 10px;
@media (max-width: 450px) {
padding: 0;
}
.form-hours {
color: #6dd077;
@ -307,11 +284,6 @@
font-weight: 700;
font-size: 14px;
margin: auto;
@media (max-width: 680px) {
font-weight: 700;
font-size: 10px;
}
}
}
.form-hours::before {

View File

@ -4,8 +4,6 @@ import { Link, NavLink } from "react-router-dom";
import { BurgerButton } from "@components/BurgerMenu/burgerButton";
import { BurgerMenu } from "@components/BurgerMenu/burgerMenu";
import ModalAuth from "@components/Modal/ModalAuth/ModalAuth";
import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration";
import authIcon from "assets/icons/authIcon.svg";
@ -13,23 +11,15 @@ import "./authHeader.scss";
export const AuthHeader = () => {
const [actionMenu, setActionMenu] = useState(false);
const [modalReg, setModalReg] = useState(false);
const [modalAuth, setModalAuth] = useState(false);
return (
<div className="auth-header">
<BurgerMenu active={actionMenu} />
<ModalRegistration active={modalReg} setActive={setModalReg} />
<ModalAuth active={modalAuth} setActive={setModalAuth} />
<div className="auth-header__navigation">
<div className="auth__logo">
<div>
<BurgerButton active={actionMenu} setActive={setActionMenu} />
</div>
<NavLink to={"/"}>
<h3>IT GUILD</h3>
</NavLink>
<h3>IT GUILD</h3>
<div>
<Link to="/auth">
<SVG src={authIcon} />
@ -39,34 +29,28 @@ export const AuthHeader = () => {
<div className="auth-nav">
<ul>
<li>
<NavLink to={"/stack"}>Аутстафинг</NavLink>
<NavLink to={"/auth"}>кейсы</NavLink>
</li>
<li>
<NavLink to={"/tracker-intro"}>Трекер</NavLink>
<NavLink to={"/stack"}>стек</NavLink>
</li>
<li>
<NavLink to={"/auth-candidate"}>Работа в IT</NavLink>
<NavLink to={"/tracker-intro"}>как это работает</NavLink>
</li>
<li>
<NavLink to={"/auth-candidate"}>отзывы</NavLink>
</li>
<li>
<NavLink to={"/profile"}>наши продукты</NavLink>
</li>
</ul>
</div>
<div className="auth__buttons">
<button
className="signIn"
onClick={(e) => {
e.preventDefault();
setModalAuth(true);
}}
>
войти
<button className="signIn">
<Link to="/auth">войти</Link>
</button>
<button
className="signUp"
onClick={(e) => {
e.preventDefault();
setModalReg(true);
}}
>
регистрация
<button className="signUp">
<Link to="/auth">регистрация</Link>
</button>
</div>
</div>

View File

@ -130,7 +130,9 @@
}
.signUp {
color: #a7ca60;
a {
color: #a7ca60;
}
border: 1px solid #a7ca60;
background: none;

View File

@ -24,35 +24,19 @@ export const Footer = () => {
<div className="footer__bottom">
<div className="footer__social">
<div className="footer__social__icons">
<a
href="https://www.vk.com/"
target="_blank"
rel="noopener noreferrer"
>
<a href="https://www.vk.com/">
<img src={vk} alt="vk" width={24} />
</a>
<a
href="https://www.telegram.org/"
target="_blank"
rel="noopener noreferrer"
>
<a href="https://www.telegram.org/">
<img src={tg} alt="tg" width={24} />
</a>
</div>
<a
href="mailto:office@itguild.info"
target="_blank"
rel="noopener noreferrer"
>
office@itguild.info
</a>
<a href="mailto:office@itguild.info">office@itguild.info</a>
</div>
<div className="footer__info">
<div className="footer__mail">
{/* <img src={email} alt="email" /> */}
<a href="#" target="_blank" rel="noopener noreferrer">
Присоединиться к команде
</a>
<a href="#">Присоединиться к команде</a>
</div>
<p>
© {new Date().getFullYear()} - Outstaffing. Все права защищены

View File

@ -119,10 +119,6 @@
.create-ticket-project {
padding: 0;
background: white;
@media (max-width: 770px) {
width: 90%;
}
}
.ck-editor {

View File

@ -1,22 +0,0 @@
import React from "react";
import { Link } from "react-router-dom";
import empty from "assets/images/emptyPage.svg";
import "./emptyBlock.scss";
export const EmptyBlock = () => {
return (
<>
<div className="empty-block">
<h4 className="empty-block__title">
Данная страница находится в разработке
</h4>
<Link className="empty-block__back" to="/profile">
На главную
</Link>
</div>
<img src={empty} alt="img" className="empty-block__img" />
</>
);
};

View File

@ -1,53 +0,0 @@
.empty-block {
position: relative;
border-radius: 8px;
border: 0.5px solid;
border-image-source: linear-gradient(137.79deg, #FFFFFF 9.15%, #F4F4F4 76.22%);
background: linear-gradient(110.06deg, rgba(255, 255, 255, 0.34) 0%, rgba(239, 239, 239, 0.34) 99.25%);
display: flex;
box-shadow: 10px 9px 14.3px 0px #00000008;
align-items: center;
justify-content: center;
margin-top: 22px;
padding: 95px 0 40px;
flex-direction: column;
z-index: 2;
backdrop-filter: blur(5px);
&__img {
position: absolute;
z-index: 1;
top: 30px;
transform: translate(-50%);
left: 50%;
}
&__title {
color: #000000;
font-weight: 700;
font-size: 22px;
line-height: 32px;
margin-bottom: 0;
}
&__back {
max-width: 150px;
width: 100%;
background: #52B709;
border-radius: 44px;
color: #FFFFFF;
font-size: 14px;
font-weight: 700;
margin-top: 16px;
display: flex;
align-items: center;
justify-content: center;
height: 40px;
transition: all 0.3s ease;
&:hover {
color: white;
scale: 1.1;
}
}
}

View File

@ -1,124 +0,0 @@
import React, { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { useNavigate } from "react-router-dom";
import { loading, selectIsLoading } from "@redux/loaderSlice";
import { auth, setUserInfo } from "@redux/outstaffingSlice";
import { setRole } from "@redux/roleSlice";
import { apiRequest } from "@api/request";
// import { useNotification } from "@hooks/useNotification";
import BaseButton from "@components/Common/BaseButton/BaseButton";
import { Loader } from "@components/Common/Loader/Loader";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import "./modalAuth.scss";
export const ModalAuth = ({ active, setActive }) => {
const navigate = useNavigate();
const dispatch = useDispatch();
const isLoading = useSelector(selectIsLoading);
const [error, setError] = useState(null);
const [modalError, setModalError] = useState(false);
const [formData, setFormData] = useState({
email: "",
password: ""
});
const closeModal = () => {
setActive(false);
};
const handleChange = (e) => {
const { name, value } = e.target;
setFormData({
...formData,
[name]: value
});
};
const submitHandler = () => {
if (!isLoading) {
dispatch(loading(true));
apiRequest("/user/login", {
method: "POST",
data: formData
}).then((res) => {
if (!res.access_token) {
setError("Введены некорректные данные для входа");
setModalError(true);
dispatch(loading(false));
} else {
localStorage.setItem("auth_token", res.access_token);
localStorage.setItem("id", res.id);
localStorage.setItem("cardId", res.card_id);
localStorage.setItem("role_status", res.status);
localStorage.setItem(
"access_token_expired_at",
res.access_token_expired_at
);
dispatch(auth(true));
dispatch(setUserInfo(res));
dispatch(loading(false));
dispatch(setRole("ROLE_PARTNER"));
navigate("/profile");
}
});
}
};
return (
<ModalLayout active={active} setActive={closeModal} styles={"auth"}>
<div className="auth-body__main">
<h2 className="auth-body__main-title">
Войти к <span>ITguild</span>
</h2>
<div className="input-body">
<div className="input-body__box">
<div className="input-container">
<h5>E-mail</h5>
<input
type="email"
name="email"
onChange={handleChange}
value={formData.email}
placeholder="Почта"
id="authEmail"
/>
</div>
</div>
<div className="input-body__box">
<div className="input-container">
<h5>Пароль</h5>
<input
type="password"
name="password"
onChange={handleChange}
value={formData.password}
placeholder="Пароль"
id="authPassword"
/>
</div>
</div>
</div>
<span className="error">{modalError ? error : ""}</span>
<div className="button-box">
<BaseButton
onClick={async (e) => {
e.preventDefault();
submitHandler(e);
}}
styles="button-box__submit"
>
{isLoading ? <Loader /> : "Войти"}
</BaseButton>
</div>
</div>
<span onClick={() => closeModal()} className="exit"></span>
</ModalLayout>
);
};
export default ModalAuth;

View File

@ -1,136 +0,0 @@
.auth {
background: white;
padding: 40px 20px 40px 20px;
border: 1px solid #dde2e4;
border-radius: 8px;
width: 70%;
max-width: 900px;
font-family: "LabGrotesque", sans-serif;
&-body {
&__main {
width: 80%;
display: flex;
flex-direction: column;
align-items: center;
row-gap: 20px;
&-title {
font-weight: 500;
font-size: 35px;
line-height: 32px;
display: flex;
justify-content: center;
margin: 0;
@media (max-width: 960px) {
font-size: 25px;
}
@media (max-width: 703px) {
align-items: center;
font-size: 20px;
}
span {
color: #52b709;
margin-left: 10px;
@media (max-width: 703px) {
margin-left: 5px;
}
}
}
.input-body {
margin-top: 44px;
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%;
@media (max-width: 703px) {
flex-direction: column;
align-items: center;
margin-top: 10px;
}
&__box {
display: flex;
flex-direction: column;
width: 47%;
@media (max-width: 703px) {
width: 85%;
}
h5 {
font-weight: 400;
font-size: 15px;
line-height: 18px;
margin: 0 0 10px 10px;
}
input {
height: 43px;
background: #eff2f7;
border-radius: 8px;
border: none;
margin-bottom: 5px;
font-size: 15px;
font-weight: 400;
line-height: 18px;
font-style: normal;
letter-spacing: normal;
text-align: left;
padding: 16px 15px 16px 22px;
outline: none;
}
.input-container {
margin: 0 0 20px 0;
width: 100%;
display: flex;
flex-direction: column;
}
}
}
.error {
color: red;
font-size: 11px;
font-weight: 400;
}
.button-box {
display: flex;
flex-direction: row;
margin-top: 10px;
&__submit {
width: 174px;
height: 50px;
font-size: 18px;
}
.disable {
opacity: 0.5;
pointer-events: none;
}
h5 {
display: flex;
align-items: flex-end;
font-size: 16px;
line-height: 28px;
p {
color: #406128;
text-decoration: underline;
margin: 0 0 0 5px;
}
}
}
}
}
}

View File

@ -7,7 +7,6 @@
border: 1px solid #dde2e4;
border-radius: 8px;
width: 60%;
font-family: "LabGrotesque", sans-serif;
@media (max-width: 1375px) {
width: 80%;
@ -111,14 +110,7 @@
border-radius: 8px;
border: none;
margin-bottom: 5px;
font-size: 15px;
font-weight: 400;
line-height: 18px;
font-style: normal;
letter-spacing: normal;
text-align: left;
padding: 16px 15px 16px 22px;
outline: none;
padding-left: 20px;
}
.input-container {

View File

@ -122,6 +122,15 @@ export const ModalTiсket = ({
setShowModalToReport(!showModalToReport);
};
const closeModal = () => {
setActive(false);
const currentUrl = window.location.pathname;
const newUrl = currentUrl.replace(/\/task\/\d+$/, "");
window.history.replaceState({}, "", newUrl);
document.body.style.overflow = "auto";
console.log(task);
};
const [isExpanded, setIsExpanded] = useState(false);
const toggleModalSize = () => {
@ -301,17 +310,6 @@ export const ModalTiсket = ({
});
}
const closeModal = () => {
if (timerStart) {
stopTaskTimer();
}
setActive(false);
const currentUrl = window.location.pathname;
const newUrl = currentUrl.replace(/\/task\/\d+$/, "");
window.history.replaceState({}, "", newUrl);
document.body.style.overflow = "auto";
};
function taskExecutor(person) {
apiRequest("/task/update-task", {
method: "PUT",
@ -382,135 +380,97 @@ export const ModalTiсket = ({
}
useEffect(() => {
if (active) {
setStartDate(task.dead_line ? new Date(task.dead_line) : new Date());
setTaskPriority(task.execution_priority);
setMembers(task.taskUsers);
setTaskTags(task.mark);
setExecutorId(task.executor_id);
setDeadLine(task.dead_line);
setExecutor(task.executor);
setInputsValue({
title: task.title,
description: task.description,
comment: ""
});
initListeners();
apiRequest(
`/comment/get-by-entity?entity_type=2&entity_id=${task.id}`
).then((res) => {
const comments = res.reduce((acc, cur) => {
if (!cur.parent_id) {
acc.push({ ...cur, subComments: [] });
} else {
acc.forEach((item) => {
if (item.id === cur.parent_id) item.subComments.push(cur);
});
}
return acc;
}, []);
setComments(comments);
});
apiRequest(
`/timer/get-by-entity?entity_type=2&entity_id=${task.id}`
).then((res) => {
if (Array.isArray(res)) {
let timerSeconds = 0;
res.length &&
res.forEach((time) => {
timerSeconds += time.deltaSeconds;
setCurrentTimerCount({
hours: Math.floor(timerSeconds / 60 / 60),
minute: Math.floor((timerSeconds / 60) % 60),
seconds: timerSeconds % 60
});
updateTimerHours = Math.floor(timerSeconds / 60 / 60);
updateTimerMinute = Math.floor((timerSeconds / 60) % 60);
updateTimerSec = timerSeconds % 60;
if (!time.stopped_at) {
setTimerStart(true);
startTimer();
setTimerInfo(time);
}
});
initListeners();
apiRequest(
`/comment/get-by-entity?entity_type=2&entity_id=${task.id}`
).then((res) => {
const comments = res.reduce((acc, cur) => {
if (!cur.parent_id) {
acc.push({ ...cur, subComments: [] });
} else {
setCurrentTimerCount({
hours: 0,
minute: 0,
seconds: 0
acc.forEach((item) => {
if (item.id === cur.parent_id) item.subComments.push(cur);
});
}
});
return acc;
}, []);
setComments(comments);
});
apiRequest(`/timer/get-by-entity?entity_type=2&entity_id=${task.id}`).then(
(res) => {
let timerSeconds = 0;
res.length &&
res.forEach((time) => {
timerSeconds += time.deltaSeconds;
setCurrentTimerCount({
hours: Math.floor(timerSeconds / 60 / 60),
minute: Math.floor((timerSeconds / 60) % 60),
seconds: timerSeconds % 60
});
updateTimerHours = Math.floor(timerSeconds / 60 / 60);
updateTimerMinute = Math.floor((timerSeconds / 60) % 60);
updateTimerSec = timerSeconds % 60;
if (!time.stopped_at) {
setTimerStart(true);
startTimer();
setTimerInfo(time);
}
});
}
);
apiRequest(`/file/get-by-entity?entity_type=2&entity_id=${task.id}`).then(
(res) => {
if (Array.isArray(res)) {
setTaskFiles(res);
} else {
setTaskFiles([]);
}
apiRequest(`/file/get-by-entity?entity_type=2&entity_id=${task.id}`).then(
(res) => {
if (Array.isArray(res)) {
setTaskFiles(res);
}
);
}
);
if (
localStorage.getItem("role_status") !== "18" &&
Array.isArray(correctProjectUsers) &&
if (
localStorage.getItem("role_status") !== "18" &&
Boolean(
!correctProjectUsers.find(
(item) => item.user_id === profileInfo.id_user
)
) {
setCorrectProjectUsers((prevState) => [
...prevState,
{
user: {
avatar: profileInfo.photo,
fio: profileInfo.fio
},
user_id: profileInfo.id_user
}
]);
}
)
) {
setCorrectProjectUsers((prevState) => [
...prevState,
{
user: {
avatar: profileInfo.photo,
fio: profileInfo.fio
},
user_id: profileInfo.id_user
}
]);
}
}, [active]);
}, []);
useEffect(() => {
if (Array.isArray(taskTags)) {
const tagIds = taskTags.map((tag) => tag.id);
setCorrectProjectTags(
projectMarks.reduce((acc, cur) => {
if (!tagIds.includes(cur.id)) acc.push(cur);
return acc;
}, [])
);
}
let tagIds = taskTags.map((tag) => tag.id);
setCorrectProjectTags(
projectMarks.reduce((acc, cur) => {
if (!tagIds.includes(cur.id)) acc.push(cur);
return acc;
}, [])
);
}, [taskTags]);
async function handleUpload(event) {
try {
const formData = new FormData();
formData.append("uploadFile", event.target.files[0]);
const formData = new FormData();
formData.append("uploadFile", event.target.files[0]);
const res = await fetch("https://itguild.info/api/file/upload", {
method: "POST",
body: formData,
headers: { ...getToken() }
});
const res = await fetch("https://itguild.info/api/file/upload", {
method: "POST",
body: formData,
headers: { ...getToken() }
});
const data = await res.json();
const data = await res.json();
// setUploadedFile(data);
attachFile(data[0].id);
} catch {
showNotification({
show: true,
text: "Неверный формат файла",
type: "error"
});
}
// setUploadedFile(data);
attachFile(data[0].id);
}
// function deleteLoadedFile() {
@ -552,7 +512,7 @@ export const ModalTiсket = ({
function run() {
updateTimerSec++;
if (updateTimerSec > 59) {
if (updateTimerSec > 60) {
updateTimerMinute++;
updateTimerSec = 0;
}
@ -570,19 +530,17 @@ export const ModalTiсket = ({
function correctTimerTime(time) {
if (time < 10) return `0${time}`;
if (time >= 10) return time;
if (time > 10) return time;
}
useEffect(() => {
if (Array.isArray(members)) {
const ids = members.map((user) => user.user_id);
setUsers(
projectUsers.reduce((acc, cur) => {
if (!ids.includes(cur.user_id)) acc.push(cur);
return acc;
}, [])
);
}
let ids = members.map((user) => user.user_id);
setUsers(
projectUsers.reduce((acc, cur) => {
if (!ids.includes(cur.user_id)) acc.push(cur);
return acc;
}, [])
);
}, [members]);
function copyTicketLink() {
@ -726,9 +684,6 @@ export const ModalTiсket = ({
editor={ClassicEditor}
data={inputsValue.description}
config={{
toolbar: {
shouldNotGroupWhenFull: true
},
removePlugins: [
"CKFinderUploadAdapter",
"CKFinder",
@ -740,10 +695,7 @@ export const ModalTiсket = ({
"ImageUpload",
"MediaEmbed",
"BlockQuote"
],
link: {
addTargetToExternalLinks: true
}
]
}}
onChange={(event, editor) => {
const data = editor.getData();
@ -761,7 +713,7 @@ export const ModalTiсket = ({
)}
{/*<img src={taskImg} className="image-task"></img>*/}
</div>
{Boolean(taskFiles?.length) && (
{Boolean(taskFiles.length) && (
<div className="task__files">
{taskFiles.map((file) => {
return (
@ -811,7 +763,7 @@ export const ModalTiсket = ({
name="file"
id="input__file"
type="file"
accept="image/*,.png,.jpg,.svg,.jpeg,.doc,.docx,.xls,.xlsx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
accept="image/*,.png,.jpg,.svg,.jpeg"
className="input__file"
onChange={handleUpload}
/>
@ -921,7 +873,7 @@ export const ModalTiсket = ({
)}
</div>
)}
{Boolean(members?.length) && (
{Boolean(members.length) && (
<div className="members">
<h5>Участники:</h5>
<div className="members__list">
@ -1053,24 +1005,23 @@ export const ModalTiсket = ({
<div className="workers_box-tag">
<div className="tags">
<div className="tags__selected">
{Array.isArray(taskTags) &&
taskTags.map((tag) => {
return (
<div
className="tags__selected__item"
key={tag.id}
style={{ background: tag.color }}
>
<p>{tag.slug}</p>
<img
src={crossWhite}
className="delete"
alt="delete"
onClick={() => deleteTagFromTask(tag.id)}
/>
</div>
);
})}
{taskTags.map((tag) => {
return (
<div
className="tags__selected__item"
key={tag.id}
style={{ background: tag.color }}
>
<p>{tag.slug}</p>
<img
src={crossWhite}
className="delete"
alt="delete"
onClick={() => deleteTagFromTask(tag.id)}
/>
</div>
);
})}
</div>
<div
className="tags__select"

View File

@ -30,6 +30,10 @@
max-height: 700px;
max-width: 915px;
@media (max-width: 990px) {
width: 96%;
}
@media (max-width: 880px) {
max-height: none;
overflow-y: inherit;
@ -586,6 +590,10 @@
width: 100%;
}
}
@media (max-width: 880px) {
width: 100%;
}
}
.members {
@ -605,7 +613,6 @@
position: relative;
border-left: 1px solid #f1f1f1;
width: 32%;
padding: 0 10px 10px 0;
.exit {
cursor: pointer;

View File

@ -381,7 +381,7 @@ export const TicketFullScreen = () => {
function run() {
updateTimerSec++;
if (updateTimerSec > 59) {
if (updateTimerSec > 60) {
updateTimerMinute++;
updateTimerSec = 0;
}
@ -399,7 +399,7 @@ export const TicketFullScreen = () => {
function correctTimerTime(time) {
if (time < 10) return `0${time}`;
if (time >= 10) return time;
if (time > 10) return time;
}
function deleteTaskExecutor() {
@ -479,27 +479,17 @@ export const TicketFullScreen = () => {
}
async function handleUpload(event) {
try {
const formData = new FormData();
formData.append("uploadFile", event.target.files[0]);
const formData = new FormData();
formData.append("uploadFile", event.target.files[0]);
const res = await fetch("https://itguild.info/api/file/upload", {
method: "POST",
body: formData,
headers: { ...getToken() }
});
const res = await fetch("https://itguild.info/api/file/upload", {
method: "POST",
body: formData,
headers: { ...getToken() }
});
const data = await res.json();
const data = await res.json();
// setUploadedFile(data);
attachFile(data[0].id);
} catch {
showNotification({
show: true,
text: "Неверный формат файла",
type: "error"
});
}
setUploadedFile(data);
}
function attachFile() {
@ -709,9 +699,6 @@ export const TicketFullScreen = () => {
editor={ClassicEditor}
data={inputsValue.description}
config={{
toolbar: {
shouldNotGroupWhenFull: true
},
removePlugins: [
"CKFinderUploadAdapter",
"CKFinder",
@ -787,7 +774,7 @@ export const TicketFullScreen = () => {
name="file"
id="input__file"
type="file"
accept="image/*,.png,.jpg,.svg,.jpeg,.doc,.docx,.xls,.xlsx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
accept="image/*,.png,.jpg,.svg,.jpeg"
className="input__file"
onChange={handleUpload}
/>

View File

@ -331,7 +331,6 @@ export const TrackerModal = ({
status: 19
}
}).then((res) => {
console.log(res);
if (!Array.isArray(res.name)) {
const result = { ...res, columns: [] };
dispatch(setProject(result));
@ -616,23 +615,17 @@ export const TrackerModal = ({
editor={ClassicEditor}
data={descriptionTicket}
config={{
toolbar: {
items: [
"heading",
"|",
"bold",
"italic",
"link",
"bulletedList",
"numberedList"
],
shouldNotGroupWhenFull: true
},
toolbar: [
"heading",
"|",
"bold",
"italic",
"link",
"bulletedList",
"numberedList"
],
removePlugins: ["BlockQuote"],
placeholder: "Описание задачи",
link: {
addTargetToExternalLinks: true
}
placeholder: "Описание задачи"
}}
onChange={(event, editor) => {
const data = editor.getData();
@ -847,7 +840,7 @@ export const TrackerModal = ({
)}
{modalType === "create-project" && (
<div>
<div className="title-project" style={{ minWidth: "350px" }}>
<div className="title-project">
<h4>{titleProject}</h4>
<div className="input-container">
<input

View File

@ -31,12 +31,6 @@
align-items: center;
flex-direction: column;
padding-bottom: 15px;
width: 100%;
min-width: 700px;
@media (max-width: 770px) {
min-width: auto;
}
.select-priority {
background-color: white;
@ -107,19 +101,10 @@
.ck-toolbar {
border: none !important;
border-radius: 8px 8px 0 0 !important;
&__items {
@media (max-width: 424px) {
flex-wrap: wrap !important;
}
}
}
.ck-placeholder {
display: block !important;
@media (max-width: 450px) {
margin-top: 0 !important;
}
}
.ck-content {
@ -128,16 +113,6 @@
box-shadow: none !important;
}
.ck-dropdown__panel-visible {
@media (max-width: 715px) {
top: -47px !important;
}
@media (max-width: 450px) {
right: -70px !important;
top: -77px !important;
}
}
.select__executor {
width: 100%;
background: white;
@ -363,16 +338,10 @@
}
.create-task-body {
width: 100%;
padding: 15px 30px;
display: grid;
grid-template-columns: 55% 45%;
display: flex;
column-gap: 20px;
@media (max-width: 725px) {
display: block;
}
&__left {
display: flex;
flex-direction: column;
@ -387,7 +356,7 @@
.input-container {
background: #f1f1f1;
margin: 0 0 17px;
width: 100%;
width: 393px;
height: 47px;
input {
@ -438,11 +407,10 @@
display: flex;
flex-direction: column;
position: relative;
width: 100%;
.tags {
&__selected {
width: 100%;
width: 250px;
font-weight: 300;
line-height: 18px;
font-size: 15px;
@ -570,10 +538,10 @@
.select__priority {
position: relative;
width: 100%;
&__name {
color: #000;
width: 250px;
height: 47px;
font-size: 15px;
font-weight: 400;
@ -621,7 +589,7 @@
.select__executor {
background: #f1f1f1;
width: 100%;
width: 250px;
height: 47px;
font-weight: 300;
line-height: 18px;

View File

@ -223,7 +223,7 @@ export const ProfileCalendarComponent = React.memo(
</div>
<div className="calendar-component__body">
<div className="calendar-component__body__week-days">
<div>
<p>Понедельник</p>
<p>Вторник</p>
<p>Среда</p>
@ -232,15 +232,6 @@ export const ProfileCalendarComponent = React.memo(
<p>Суббота</p>
<p>Воскресенье</p>
</div>
<div className="calendar-component__body__week-days-mobile">
<p>ПН</p>
<p>ВТ</p>
<p>СР</p>
<p>ЧТ</p>
<p>ПТ</p>
<p>СБ</p>
<p>ВС</p>
</div>
<div className="calendar-component__form">
{calendar.map((week) =>

View File

@ -19,17 +19,8 @@
.summary__info {
padding-right: 25px;
@media (max-width: 760px) {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
row-gap: 25px;
padding: 25px;
}
.summary__person {
margin: 0 10px 0 0;
@media (max-width: 500px) {
padding-right: 5px;
}
.summary__skill {
@ -41,12 +32,6 @@
align-items: center;
column-gap: 10px;
p {
@media (max-width: 425px) {
display: none;
}
}
div {
font-size: 12px;
font-weight: 400;

View File

@ -63,8 +63,8 @@ export const ProjectTicket = ({ project, index }) => {
dispatch(deleteProject(project));
showNotification({
show: true,
text: "Проект успешно удален",
type: "success"
text: "Проект успешно был перемещен в архив",
type: "archive"
});
});
}

View File

@ -56,23 +56,23 @@ export const SideBar = () => {
<Link to={"/tracker-intro"}>Трекер</Link>
</li>
<li>
<Link to={"/profile/quiz"}>Тесты</Link>
<Link to={"/quiz"}>Тесты</Link>
</li>
{/* <li>
<li>
<Link to={"/forms"}>Формы</Link>
</li>
<li>
<Link to={"/"}>Школа</Link>
<a href="#">Школа</a>
</li>
<li>
<Link to={"/"}>Контакты</Link>
<a href="#">Контакты</a>
</li>
<li>
<Link to={"/blog"}>Блог</Link>
</li>
<li>
<Link to={"/frequently-asked-questions"}>FAQ</Link>
</li> */}
</li>
</ul>
<p className="auth-body__politic">Политика конфиденциальности</p>
{/*<div className="auth-body__contacts">*/}

View File

@ -6,7 +6,6 @@
width: 100px;
height: 100%;
background: #e1fccf;
font-family: "LabGrotesque";
@media (max-width: 1375px) {
position: fixed;
@ -194,7 +193,7 @@
@media (max-width: 1375px) {
left: 0;
width: 100%;
height: 100vh;
height: 705px;
}
}
}

View File

@ -1,4 +1,4 @@
import React, { forwardRef, useEffect, useState } from "react";
import React, { useEffect, useState } from "react";
import { useDispatch } from "react-redux";
import { movePositionProjectTask } from "@redux/projectsTrackerSlice";
@ -14,183 +14,173 @@ import avatarMok from "assets/images/avatarMok.webp";
import "./trackerCardTask.scss";
const TrackerCardTask = forwardRef(
(
{
task,
projectBoard,
titleColor,
column,
openTicket,
startWrapperIndexTest,
setWrapperHover
},
ref
) => {
const dispatch = useDispatch();
const [taskHover, setTaskHover] = useState({});
const TrackerCardTask = ({
task,
projectBoard,
titleColor,
column,
openTicket,
startWrapperIndexTest,
setWrapperHover
}) => {
const dispatch = useDispatch();
const [taskHover, setTaskHover] = useState({});
const priority = {
2: "Высокий",
1: "Средний",
0: "Низкий"
};
const priority = {
2: "Высокий",
1: "Средний",
0: "Низкий"
};
const priorityClass = {
2: "high",
1: "middle",
0: "low"
};
const priorityClass = {
2: "high",
1: "middle",
0: "low"
};
function dragDropTaskHandler(e, task, column) {
e.preventDefault();
if (task.id === startWrapperIndexTest.current.task.id) {
return;
}
const finishTask = column.tasks.indexOf(task);
dispatch(
movePositionProjectTask({
startTask: startWrapperIndexTest.current.task,
finishTask: task,
finishIndex: finishTask
})
);
function dragDropTaskHandler(e, task, column) {
e.preventDefault();
if (task.id === startWrapperIndexTest.current.task.id) {
return;
}
function dragOverTaskHandler(e, task) {
e.preventDefault();
if (startWrapperIndexTest.current.task.id === task.id) {
return;
}
setTaskHover((prevState) => ({ [prevState]: false, [task.id]: true }));
}
const finishTask = column.tasks.indexOf(task);
function dragStartHandler(e, task, columnId) {
startWrapperIndexTest.current = { task: task, index: columnId };
}
function dragLeaveTaskHandler() {
setTaskHover((prevState) => ({ [prevState]: false }));
}
function dragEndTaskHandler() {
setTaskHover((prevState) => ({ [prevState]: false }));
setWrapperHover((prevState) => ({
[prevState]: false
}));
}
useEffect(() => {
const tasksHover = {};
const columnHover = {};
if (Object.keys(projectBoard).length) {
projectBoard.columns.forEach((column) => {
columnHover[column.id] = false;
column.tasks.forEach((task) => (tasksHover[task.id] = false));
});
}
setWrapperHover(columnHover);
setTaskHover(tasksHover);
}, [projectBoard]);
return (
<>
<div
ref={ref}
key={task.id}
className={`tasks__board__item ${
taskHover[task.id] ? "task__hover" : ""
}`}
draggable={true}
onDragStart={(e) => dragStartHandler(e, task, column.id)}
onDragOver={(e) => dragOverTaskHandler(e, task)}
onDragLeave={(e) => dragLeaveTaskHandler(e)}
onDragEnd={() => dragEndTaskHandler()}
onDrop={(e) => dragDropTaskHandler(e, task, column)}
onClick={() => openTicket(task)}
>
<div className="tasks__board__item__title">
<p className="task__board__item__title">{task.title}</p>
</div>
<p
dangerouslySetInnerHTML={{
__html: task.description
}}
className="tasks__board__item__description"
></p>
{Boolean(task.mark.length) && (
<div className="tasks__board__item__tags">
{task.mark.map((tag) => {
return (
<div
className="tag-item"
key={tag.id}
style={{ background: tag.color }}
>
<p>{tag.slug}</p>
</div>
);
})}
</div>
)}
<div className="tasks__board__item__container">
{typeof task.execution_priority === "number" && (
<div className="tasks__board__item__priority">
<p></p>
<span className={priorityClass[task.execution_priority]}>
{priority[task.execution_priority]}
</span>
</div>
)}
{task.dead_line && (
<div className="tasks__board__item__dead-line">
<p></p>
<span style={{ color: titleColor }}>
{getCorrectDate(task.dead_line)}
</span>
</div>
)}
</div>
<div className="tasks__board__item__info">
<div className="tasks__board__item__executor">
<img
src={
task.executor?.avatar
? urlForLocal(task.executor?.avatar)
: avatarMok
}
alt="avatar"
/>
<span>
{removeLast(task.executor?.fio) || "Исполнитель не назначен"}
</span>
</div>
<div className="tasks__board__item__info__tags">
<div className="tasks__board__item__info__more">
<img src={commentsBoard} alt="commentsImg" />
<span>{task.comment_count}</span>
</div>
<div className="tasks__board__item__info__more">
<img src={filesBoard} alt="filesImg" />
<span>{task.file_count}</span>
</div>
</div>
</div>
</div>
<TrackerSelectColumn
columns={projectBoard.columns.filter((item) => item.id !== column.id)}
currentColumn={column}
task={task}
/>
</>
dispatch(
movePositionProjectTask({
startTask: startWrapperIndexTest.current.task,
finishTask: task,
finishIndex: finishTask
})
);
}
);
TrackerCardTask.displayName = "TrackerCardTask";
function dragOverTaskHandler(e, task) {
e.preventDefault();
if (startWrapperIndexTest.current.task.id === task.id) {
return;
}
setTaskHover((prevState) => ({ [prevState]: false, [task.id]: true }));
}
function dragStartHandler(e, task, columnId) {
startWrapperIndexTest.current = { task: task, index: columnId };
}
function dragLeaveTaskHandler() {
setTaskHover((prevState) => ({ [prevState]: false }));
}
function dragEndTaskHandler() {
setTaskHover((prevState) => ({ [prevState]: false }));
setWrapperHover((prevState) => ({
[prevState]: false
}));
}
useEffect(() => {
const tasksHover = {};
const columnHover = {};
if (Object.keys(projectBoard).length) {
projectBoard.columns.forEach((column) => {
columnHover[column.id] = false;
column.tasks.forEach((task) => (tasksHover[task.id] = false));
});
}
setWrapperHover(columnHover);
setTaskHover(tasksHover);
}, [projectBoard]);
return (
<div
key={task.id}
className={`tasks__board__item ${
taskHover[task.id] ? "task__hover" : ""
}`}
draggable={true}
onDragStart={(e) => dragStartHandler(e, task, column.id)}
onDragOver={(e) => dragOverTaskHandler(e, task)}
onDragLeave={(e) => dragLeaveTaskHandler(e)}
onDragEnd={() => dragEndTaskHandler()}
onDrop={(e) => dragDropTaskHandler(e, task, column)}
onClick={(e) => openTicket(e, task)}
>
<div className="tasks__board__item__title">
<p className="task__board__item__title">{task.title}</p>
</div>
<p
dangerouslySetInnerHTML={{
__html: task.description
}}
className="tasks__board__item__description"
></p>
{Boolean(task.mark.length) && (
<div className="tasks__board__item__tags">
{task.mark.map((tag) => {
return (
<div
className="tag-item"
key={tag.id}
style={{ background: tag.color }}
>
<p>{tag.slug}</p>
</div>
);
})}
</div>
)}
<div className="tasks__board__item__container">
{typeof task.execution_priority === "number" && (
<div className="tasks__board__item__priority">
<p></p>
<span className={priorityClass[task.execution_priority]}>
{priority[task.execution_priority]}
</span>
</div>
)}
{task.dead_line && (
<div className="tasks__board__item__dead-line">
<p></p>
<span style={{ color: titleColor }}>
{getCorrectDate(task.dead_line)}
</span>
</div>
)}
</div>
<div className="tasks__board__item__info">
<div className="tasks__board__item__executor">
<img
src={
task.executor?.avatar
? urlForLocal(task.executor?.avatar)
: avatarMok
}
alt="avatar"
/>
<span>
{removeLast(task.executor?.fio) || "Исполнитель не назначен"}
</span>
</div>
<div className="tasks__board__item__info__tags">
<div className="tasks__board__item__info__more">
<img src={commentsBoard} alt="commentsImg" />
<span>{task.comment_count}</span>
</div>
<div className="tasks__board__item__info__more">
<img src={filesBoard} alt="filesImg" />
<span>{task.file_count}</span>
</div>
</div>
</div>
<TrackerSelectColumn
columns={projectBoard.columns.filter((item) => item.id !== column.id)}
currentColumn={column}
task={task}
/>
</div>
);
};
export default TrackerCardTask;

View File

@ -30,10 +30,6 @@
overflow: auto;
padding: 5px;
@media (max-width: 900px) {
row-gap: 0;
}
&::-webkit-scrollbar {
width: 3px;
border-radius: 10px;
@ -65,7 +61,7 @@
position: relative;
box-shadow: 0px 3px 2px -2px rgba(0, 0, 0, 0.06),
0px 5px 3px -2px rgba(0, 0, 0, 0.02);
border-radius: 6px 6px 0 0;
border-radius: 6px;
background: #ffffff;
cursor: pointer;
display: flex;
@ -80,7 +76,6 @@
@media (max-width: 900px) {
width: 100%;
padding: 6px 10px 5px 10px;
max-height: none;
&:hover {

View File

@ -2,16 +2,15 @@
display: none;
@media (max-width: 900px) {
background: #ffffff;
display: flex;
width: 100%;
margin: 0 0 15px 0;
margin: 10px 0;
justify-content: space-between;
align-items: center;
padding: 0 6px;
padding: 2px 6px;
cursor: pointer;
border-top: 1px solid #e3e2e2;
border-radius: 0 0 6px 6px;
border: 1px solid #e3e2e2;
border-radius: 8px;
position: relative;
p {

View File

@ -121,7 +121,6 @@ export const TrackerTaskComment = ({
editor={ClassicEditor}
data={commentsEditText}
config={{
toolbar: ["link"],
removePlugins: [
"CKFinderUploadAdapter",
"CKFinder",
@ -133,10 +132,7 @@ export const TrackerTaskComment = ({
"ImageUpload",
"MediaEmbed",
"BlockQuote"
],
link: {
addTargetToExternalLinks: true
}
]
}}
onChange={(event, editor) => {
const data = editor.getData();

View File

@ -1,53 +0,0 @@
import React from "react";
import { Link } from "react-router-dom";
import titleImg from "assets/images/VacancyItemImg.svg";
import "./vacancyItem.scss";
export const VacancyItem = ({
vacancy: { name, description, level, price, location, count }
}) => {
return (
<div className="vacancy__item">
<div className="vacancy__item__head">
<div className="vacancy__item__title">
<span className="vacancy__item__img">
<img src={titleImg} alt="img" />
</span>
<h4>{name}</h4>
</div>
<p className="vacancy__item__description">{description}</p>
</div>
<div className="vacancy__item__block">
<div className="vacancy__item__block--left">
<div className="vacancy__item__info">
<span>Грейд:</span>
<p>{level}</p>
</div>
<div className="vacancy__item__info">
<span>Ставка:</span>
<p>{price}</p>
</div>
<Link
to={"/profile/open-requests/12"}
className="vacancy__item__more"
>
Все требования по вакансии
</Link>
</div>
<div className="vacancy__item__block--right">
<div className="vacancy__item__info">
<span>Локация:</span>
<p>{location}</p>
</div>
<div className="vacancy__item__info">
<span>Кол-во человек:</span>
<p>{count}</p>
</div>
</div>
</div>
<button className="vacancy__item__btn">Откликнуться</button>
</div>
);
};

View File

@ -1,113 +0,0 @@
.vacancy__item {
display: flex;
flex-direction: column;
max-width: 325px;
width: 100%;
position: relative;
&__head {
display: flex;
flex-direction: column;
background: white;
border: 1px solid #DDDFE4;
border-radius: 8px;
padding: 24px 20px 8px;
z-index: 2;
}
&__title {
display: flex;
align-items: center;
column-gap: 18px;
h4 {
font-weight: 500;
color: #2E3A59;
font-size: 20px;
margin-bottom: 0;
}
}
&__img {
background: #52B709;
border-radius: 4px;
width: 24px;
height: 24px;
display: flex;
justify-content: center;
align-items: center;
}
&__description {
margin-top: 10px;
color: #2E3A59;
font-size: 14px;
line-height: 17.5px;
}
&__block {
display: flex;
position: relative;
top: -12px;
z-index: 1;
&--left {
background: #EBEBEB;
border: 1px solid #DDDFE4;
border-radius: 8px;
display: flex;
flex-direction: column;
width: 100%;
padding: 20px 20px 12px;
row-gap: 14px;
}
&--right {
background: #EBEBEB;
border: 1px solid #DDDFE4;
border-radius: 8px;
display: flex;
flex-direction: column;
width: 100%;
padding: 20px 20px 12px;
row-gap: 14px;
height: 70%;
}
}
&__info {
color: #000000;
font-size: 14px;
span {
font-weight: 700;
}
}
&__more {
font-size: 12px;
text-decoration: underline;
max-width: 97px;
cursor: pointer;
color: #000000;
&:hover {
color: #000000;
}
}
&__btn {
position: absolute;
max-width: 150px;
width: 100%;
border: none;
background: #52B709;
border-radius: 44px;
right: 5px;
padding: 10px 0;
font-size: 14px;
color: #FFFFFF;
bottom: 17px;
cursor: pointer;
z-index: 3;
}
}

View File

@ -1,17 +0,0 @@
import React from "react";
import "./vacancyTab.scss";
export const VacancyTab = ({ title, active, count, setActive }) => {
return (
<div
className={
active === title ? "vacancy__tab vacancy__tab--active" : "vacancy__tab"
}
onClick={setActive}
>
<p className="vacancy__tab__title">{title}</p>
<span className="vacancy__tab__count">{count}</span>
</div>
);
};

View File

@ -1,25 +0,0 @@
.vacancy__tab {
display: flex;
justify-content: space-between;
background: #FFFFFF;
border-radius: 8px;
padding: 10px 8px 10px 16px;
border: 2px solid white;
max-width: 178px;
width: 100%;
cursor: pointer;
&__title {
color: #2E3A59;
font-size: 16px;
}
&__count {
color: #1458DD;
font-size: 16px;
}
&--active {
border: 2px solid #52B709;
}
}

View File

@ -90,11 +90,7 @@ export const FormPage = () => {
Заявка на собеседование через телеграм
</div>
<div className="form-page__telegram-icon">
<a
href="https://t.me/st0kir"
target="_blank"
rel="noopener noreferrer"
>
<a href="https://t.me/st0kir" target="_blank" rel="noreferrer">
<SVG src={telegramIcon} />
</a>
</div>

View File

@ -5,7 +5,6 @@ import { Link, NavLink } from "react-router-dom";
import { BurgerButton } from "@components/BurgerMenu/burgerButton";
import { BurgerMenu } from "@components/BurgerMenu/burgerMenu";
import { Footer } from "@components/Common/Footer/Footer";
import ModalAuth from "@components/Modal/ModalAuth/ModalAuth";
import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration";
import arrow from "assets/icons/arrows/arrowLanding.svg";
@ -14,16 +13,11 @@ import clue from "assets/icons/landingClue.svg";
import tracker from "assets/icons/landingTracker.svg";
import codeBg from "assets/images/landing/backgroundCode.webp";
import cat from "assets/images/landing/landingCat.webp";
import reportingSystem from "assets/images/landing/reportingSystem.webp";
import searchIT from "assets/images/landing/searchIT.webp";
import systemControlGit from "assets/images/landing/systemControlGit.webp";
import taskManagement from "assets/images/landing/taskManagement.webp";
import "./landing.scss";
export const Landing = () => {
const [modalReg, setModalReg] = useState(false);
const [modalAuth, setModalAuth] = useState(false);
const [menuActive, setMenuActive] = useState(false);
const opportunities = [
@ -35,22 +29,22 @@ export const Landing = () => {
{
name: "<span>Найти</span> работу <br/> в IT",
path: "/stack",
img: searchIT
img: cat
},
{
name: "<span>Система</span> контроля версий GIT",
path: "/stack",
img: systemControlGit
img: cat
},
{
name: "<span>Управление</span> задачами",
path: "/landing-tracker",
img: taskManagement
img: cat
},
{
name: "<span>Система</span> для отчётности",
path: "/stack",
img: reportingSystem
img: cat
},
{
name: "Все наши предложения",
@ -63,20 +57,14 @@ export const Landing = () => {
return (
<section className="landing">
<ModalRegistration active={modalReg} setActive={setModalReg} />
<ModalAuth active={modalAuth} setActive={setModalAuth} />
<BurgerMenu active={menuActive} />
<div className="landing__container">
<div className="landing__head">
<h2 className="head__logo">ITGUILD</h2>
<div
className="head__signIn"
onClick={(e) => {
e.preventDefault();
setModalAuth(true);
}}
>
<Link className="head__signIn" to="/auth">
войти в систему
</div>
</Link>
<div
className="head__signUp"
onClick={(e) => {
@ -88,12 +76,12 @@ export const Landing = () => {
регистрация
</div>
<BurgerButton active={menuActive} setActive={setMenuActive} />
<Link className="head__tracker" to="/tracker-intro">
<div className="head__tracker">
<div>
<img src={tracker} alt="tracker" />
</div>
<span>трекер</span>
</Link>
</div>
<SVG className="head__auth" src={authIcon} />
</div>
<div className="landing__info">

View File

@ -59,7 +59,6 @@
font-weight: 400;
border-radius: 32px;
z-index: 1;
cursor: pointer;
@media (max-width: 431px) {
display: none;

View File

@ -1,647 +0,0 @@
import React, { useCallback, useRef, useState } from "react";
import SVG from "react-inlinesvg";
import { Link } from "react-router-dom";
import { Navigation } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/react";
import headerCube from "assets/images/landingClub/HeaderCube.webp";
import arrowButton from "assets/images/landingClub/arrowButton.svg";
import arrowEvent from "assets/images/landingClub/arrowEvent.svg";
import arrowItem from "assets/images/landingClub/arrowItem.svg";
import arrowMission from "assets/images/landingClub/arrowMission.svg";
import arrowSlider from "assets/images/landingClub/arrowSlider.svg";
import bgBlack from "assets/images/landingClub/bgBlack.webp";
import bgOrange from "assets/images/landingClub/bgOrange.webp";
import bgWhite from "assets/images/landingClub/bgWhite.webp";
import bgYellow from "assets/images/landingClub/bgYellow.webp";
import blackWhiteCube from "assets/images/landingClub/blackWhiteCube.webp";
import blackYellowCube from "assets/images/landingClub/blackYellowCube.webp";
import elementBg2 from "assets/images/landingClub/elementBg2.webp";
import event from "assets/images/landingClub/event.png";
import headerLogo2 from "assets/images/landingClub/headerLogoClub2.svg";
import headerLogo1 from "assets/images/landingClub/headerLogoClub.svg";
import headerText from "assets/images/landingClub/headerText.svg";
import human from "assets/images/landingClub/human.png";
import humanShadow from "assets/images/landingClub/humanShadow.png";
import iconCalendar from "assets/images/landingClub/iconCalendar.svg";
import iconPosition from "assets/images/landingClub/iconPosition.svg";
import iconTg from "assets/images/landingClub/iconTg.svg";
import iconVk from "assets/images/landingClub/iconVk.svg";
import menu from "assets/images/landingClub/menu.svg";
import newsImg from "assets/images/landingClub/news.png";
import orangeBlackCube from "assets/images/landingClub/orangeBlackCube.webp";
import questionMark from "assets/images/landingClub/questionMark.webp";
import slider2 from "assets/images/landingClub/slider2.png";
import slider from "assets/images/landingClub/slider.png";
import "./landingClub.scss";
export const LandingClub = () => {
const [activeMenu, setActiveMenu] = useState(false);
const sliderRef1 = useRef(null);
const sliderRef2 = useRef(null);
const handleMenu = () => {
setActiveMenu((prevState) => !prevState);
};
const handlePrev = useCallback((ref) => {
if (!ref.current) return;
ref.current.swiper.slidePrev();
}, []);
const handleNext = useCallback((ref) => {
if (!ref.current) return;
ref.current.swiper.slideNext();
}, []);
const subjects = [
"сообщество единомышленников",
"наставничество",
"поддержка молодых предпринимателей",
"советы бывалых",
"государственная поддержка",
"развитие бизнеса в регионе",
"партнерство",
"бизнес встречи"
];
const missionSubjects = [
"необходимые <br /><span>мероприятия</span>",
"<span>нетворкинг</span> и новые <br />знакомства",
"информационную <br /><span>поддержку</span>",
"<span>консультации</span> опытных <br />предпринимателей и наставников",
"<span>возможность</span> получить финансирование <br />в собственные бизнес-проекты"
];
const members = [
{
name: "Кирилл Бойко",
position: "Донецк",
avatar: slider,
content:
"Основатель и глава всего что можно придумать! Бог основания и создания! Великий всея кода и управления тупых и не очень людей! Владыка терпения и мудрости!",
id: 11
},
{
name: "Виктор Батищев",
position: "Донецк",
avatar: slider2,
content:
"Великий ответственности и креативности! Наблюдатель за стадом неразумным. Альтруистический деятель! Активатор и мотиватор великих процессов!",
id: 12
},
{
name: "Кирилл Бойко",
position: "Донецк",
avatar: slider,
content:
"Основатель и глава всего что можно придумать! Бог основания и создания! Великий всея кода и управления тупых и не очень людей! Владыка терпения и мудрости!",
id: 13
},
{
name: "Виктор Батищев",
position: "Донецк",
avatar: slider2,
content:
"Великий ответственности и креативности! Наблюдатель за стадом неразумным. Альтруистический деятель! Активатор и мотиватор великих процессов!",
id: 14
}
];
const news = [
{
title: "6 окружных мероприятий клуба",
img: newsImg,
content:
"Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов. Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом территориальных особенностей федерального округа.<br /><br />Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом",
id: 15
},
{
title: "6 окружных мероприятий клуба",
img: newsImg,
content:
"Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов. Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом территориальных особенностей федерального округа.<br /><br />Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом",
id: 16
},
{
title: "6 окружных мероприятий клуба",
img: newsImg,
content:
"Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов. Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом территориальных особенностей федерального округа.<br /><br />Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом",
id: 17
},
{
title: "6 окружных мероприятий клуба",
img: newsImg,
content:
"Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов. Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом территориальных особенностей федерального округа.<br /><br />Встречи предпринимателей с представителями региональных сетевых торговых площадок в формате круглых столов Стратегические сессии и лекции на тему ведения предпринимательской деятельности с учётом",
id: 18
}
];
return (
<section className="club">
<section
className={`club-mobile-menu ${
activeMenu ? "club-mobile-menu-active" : ""
}`}
>
<div className="menu-container">
<div className="menu__img">
<SVG src={menu} />
</div>
<nav className="menu-nav">
<Link to="#">о клубе</Link>
<Link to="#">ценности</Link>
<Link to="#">клуб в лицах</Link>
<Link to="#">мероприятия</Link>
<Link to="#">новости клуба</Link>
<Link to="#">контакты</Link>
</nav>
<div className="menu-burger" onClick={() => handleMenu()}>
<div className="menu-burger__line"></div>
<div className="menu-burger__line"></div>
<div className="menu-burger__line"></div>
</div>
</div>
</section>
<section className="club-header">
<div className="header-container">
<img className="header-cube" src={headerCube} alt="" />
<div className="header__logo">
<img src={headerLogo1} alt="" />
<img src={headerText} alt="" />
<img src={headerLogo2} alt="" />
</div>
<nav className="header-nav">
<Link to="#">о клубе</Link>
<Link to="#">ценности</Link>
<Link to="#">клуб в лицах</Link>
<Link to="#">мероприятия</Link>
<Link to="#">новости клуба</Link>
<Link to="#">контакты</Link>
</nav>
</div>
</section>
<section className="club-title">
<img className="title-bg--bottom" src={bgWhite} alt="" />
<div className="title-container">
<div className="title-bg--top">
<img src={bgWhite} alt="" />
</div>
<h3 className="title__name">
<span>клуб</span> молодых <p>предпринимателей</p>
</h3>
<h1 className="title__header">
<span>ДОН</span>
<img src={human} alt="" className="header__human" />
<img src={humanShadow} alt="" className="header__human-shadow" />
<img src={orangeBlackCube} alt="" className="header__human-cube" />
ЕЦК
</h1>
</div>
</section>
<section className="club-description">
<div className="description-container">
<img className="description-bg" src={bgBlack} alt="" />
<div className="description-subtitle">
<p>сообщество сильного окружения</p>
</div>
<button className="club__button">
Вступить в клуб
<div>
<img src={arrowButton} alt="" />
</div>
</button>
<div className="description-content">
<img
className="description-content__cube"
src={blackYellowCube}
alt=""
/>
<h3 className="description-content__title">
клуб - <br />
<span>это:</span>
</h3>
<div className="description-content__text">
<p>
Сообщество предпринимателей, в котором каждый может найти
бизнес-партнёров и наставников, повысить узнаваемость своей
компании и развить своё дело на региональном и федеральном
уровнях <br /> <br /> Сообщество предпринимателей, в котором
каждый может найти бизнес-партнёров и наставников, повысить
узнаваемость своей компании и развить своё дело на региональном
и федеральном уровнях
</p>
<div className="description-content__subjects">
{subjects.map((subject) => {
return (
<span className="subject" key={subject}>
{subject}
</span>
);
})}
</div>
</div>
</div>
</div>
</section>
<section className="club-mission">
<img className="mission-bg-element" src={elementBg2} alt="" />
<div className="mission-container">
<div className="mission-mobile-cube">
<img src={blackYellowCube} alt="" />
</div>
<img className="mission-cube" src={blackWhiteCube} alt="" />
<div className="mission-bg">
<img src={bgOrange} alt="" />
</div>
<div className="mission-header">
<h3 className="mission-header__title">
наша
<br />
<span>миссия:</span>
</h3>
<div className="mission-header__text">
<p>
<span>вдохновлять</span> молодых людей делать бизнес в России,
<span>брать ответственность за себя</span>, за своё окружение,
за свой регион и будущее страны!
</p>
</div>
</div>
<h4 className="mission__subtitle">
поэтому мы создали уникальную среду,
<br />
где ты получишь:
</h4>
<div className="mission-content">
<div className="mission-content__subjects">
{missionSubjects.map((subject) => {
return (
<div key={subject} className="subject">
<div className="subject__img">
<img src={arrowMission} alt="" />
</div>
<span
className="subject__text"
dangerouslySetInnerHTML={{
__html: subject
}}
></span>
</div>
);
})}
</div>
<button className="club__button">
Вступить в клуб
<div>
<img src={arrowButton} alt="" />
</div>
</button>
<button className="mission-content__button">
Вступить в клуб
<div>
<img src={arrowButton} alt="" />
</div>
</button>
</div>
</div>
</section>
<section className="club-members">
<div className="members-container">
<img className="members-cube" src={blackYellowCube} alt="" />
<div className="members-bg">
<img src={bgYellow} alt="" />
</div>
<div className="members-header">
<span className="members-header__subtitle">донецкий</span>
<h3 className="members-header__title">клуб в лицах:</h3>
</div>
<div className="members-content">
<button
onClick={() => handlePrev(sliderRef1)}
className="members-content__button members-content__button--left"
>
<img src={arrowSlider} alt="" />
</button>
<div className="members-content-slider">
<Swiper
ref={sliderRef1}
modules={[Navigation]}
spaceBetween={30}
breakpoints={{
430: {
slidesPerView: 1.3,
centeredSlides: true
},
1000: {
slidesPerView: 3,
centeredSlides: false
}
}}
>
{members.map((member) => (
<SwiperSlide key={member.id}>
<div className="slider-item">
<img
className="slider-item__img"
src={member.avatar}
alt=""
/>
<div className="slider-item-info">
<span className="slider-item__title">
{member.name}
</span>
<span className="slider-item__subtitle">
{member.position}
</span>
</div>
<p className="slider-item__text">{member.content}</p>
<div className="slider-item__arrow">
<img src={arrowItem} alt="" />
</div>
</div>
</SwiperSlide>
))}
<SwiperSlide>
<div className="slider-item--end">
<img
className="slider-item--end__img"
src={questionMark}
alt=""
/>
<span className="slider-item--end__title">
Может это место для тебя?
</span>
<button className="slider-item--end__button">
Вступить в клуб
</button>
</div>
</SwiperSlide>
</Swiper>
</div>
<button
onClick={() => handleNext(sliderRef1)}
className="members-content__button members-content__button--right"
>
<img src={arrowSlider} alt="" />
</button>
</div>
</div>
</section>
<section className="club-event">
<div className="event-container">
<div className="event-cube">
<img src={blackWhiteCube} alt="" />
</div>
<div className="event-header">
<span className="event-header__subtitle">Спеши посетить</span>
<h3 className="event-header__title">
Мероприятия <br />в Донецке
</h3>
</div>
<div className="event-content">
<div className="content-tomorrow">
<h4 className="content__title">
16.08 <br />
<span>Завтра</span>
</h4>
<div className="tomorrow-item">
<img className="tomorrow-item__img" src={event} alt="" />
<div className="tomorrow-item-info">
<span className="tomorrow-item__title">Гульки гуляльные</span>
<span className="tomorrow-item__subtitle">Донецк</span>
</div>
<p className="tomorrow-item__text">
мероприятие бла бла бла бла бла мероприятие бла бла бла бла
бла мероприятие бла бла бла бла бла мероприятие бла бла бла
бла бла мероприятие бла бла бла бла бла мероприятие бла
бламероприятие бла
</p>
<div className="tomorrow-item__arrow">
<img src={arrowEvent} alt="" />
</div>
</div>
</div>
<div className="content-month">
<h4 className="content__title">
Август
<img src={iconCalendar} alt="" /> <br />
<span>месяц</span>
</h4>
<div className="month-container">
<div className="month-item">
<img className="month-item__img" src={event} alt="" />
<div className="month-item-container">
<div className="month-item-info">
<span className="month-item__date">
<img src={iconCalendar} alt="" />
17.08.2024
</span>
<span className="month-item__position">
<img src={iconPosition} alt="" />
Рамада
</span>
</div>
<h5 className="month-item__title">
6 окружных мероприятий клуба
</h5>
<p className="month-item__text">
<br />
Встречи предпринимателей с представителями региональных
сетевых торговых площадок в формате круглых...
</p>
</div>
</div>
<div className="month-item">
<img className="month-item__img" src={event} alt="" />
<div className="month-item-container">
<div className="month-item-info">
<span className="month-item__date">
<img src={iconCalendar} alt="" />
17.08.2024
</span>
<span className="month-item__position">
<img src={iconPosition} alt="" />
Рамада
</span>
</div>
<h5 className="month-item__title">
6 окружных мероприятий клуба
</h5>
<p className="month-item__text">
<br />
Встречи предпринимателей с представителями региональных
сетевых торговых площадок в формате круглых...
</p>
</div>
</div>
<div className="month-item">
<img className="month-item__img" src={event} alt="" />
<div className="month-item-container">
<div className="month-item-info">
<span className="month-item__date">
<img src={iconCalendar} alt="" />
17.08.2024
</span>
<span className="month-item__position">
<img src={iconPosition} alt="" />
Рамада
</span>
</div>
<h5 className="month-item__title">
6 окружных мероприятий клуба
</h5>
<p className="month-item__text">
<br />
Встречи предпринимателей с представителями региональных
сетевых торговых площадок в формате круглых...
</p>
</div>
</div>
</div>
</div>
</div>
<p className="event-text">
Чтобы <span>быть в курсе</span> всех мероприятий клуба
</p>
<button className="club__button">
Вступить в клуб
<div>
<img src={arrowButton} alt="" />
</div>
</button>
</div>
</section>
<section className="club-news">
<img src={blackYellowCube} alt="" className="news-cube" />
<div className="news-container">
<div className="news-bg">
<img src={bgBlack} alt="" />
</div>
<div className="news-header">
<span className="news-header__subtitle">интересно посмотреть</span>
<h3 className="news-header__title">новости клуба</h3>
</div>
<div className="news-content">
<button
className="news-content__button news-content__button--left"
onClick={() => handlePrev(sliderRef2)}
>
<img src={arrowSlider} alt="" />
</button>
<div className="news-content-slider">
<Swiper
ref={sliderRef2}
modules={[Navigation]}
spaceBetween={10}
breakpoints={{
430: {
slidesPerView: 1.1,
centeredSlides: true
},
1000: {
slidesPerView: 2,
centeredSlides: false
}
}}
>
{news.map((news) => (
<SwiperSlide key={news.id}>
<div className="slider-item">
<img className="slider-item__img" src={news.img} alt="" />
<h5 className="slider-item__title">{news.title}</h5>
<p
className="slider-item__text"
dangerouslySetInnerHTML={{
__html: news.content
}}
></p>
</div>
</SwiperSlide>
))}
</Swiper>
</div>
<button
onClick={() => handleNext(sliderRef2)}
className="news-content__button news-content__button--right"
>
<img src={arrowSlider} alt="" />
</button>
</div>
<h4 className="news__subtitle">Донецк город герой</h4>
</div>
</section>
<section className="club-footer">
<div className="footer-container">
<div className="footer-cube">
<img src={orangeBlackCube} alt="" />
</div>
<div className="footer-bg">
<img src={bgWhite} alt="" />
</div>
<div className="footer-logo">
<img src={headerLogo1} alt="" />
<div className="footer-logo--sub">
<img src={headerText} alt="" />
<img src={headerLogo2} alt="" />
</div>
</div>
<div className="footer-nav">
<Link to="#">мероприятия</Link>
<Link to="#">новости клуба</Link>
<Link to="#">контакты</Link>
<Link to="#">о клубе</Link>
<Link to="#">ценности</Link>
<Link to="#">клуб в лицах</Link>
</div>
<div className="footer-content">
<span>
Подпишись. чтобы быть
<br />в курсе новостей
</span>
<div className="content__social-icons">
<Link to="#">
<div className="social-icon">
<img src={iconTg} alt="" />
</div>
</Link>
<Link to="#">
<div className="social-icon">
<img src={iconVk} alt="" />
</div>
</Link>
</div>
<Link className="content__link" to="#">
Политика конфиденциальности
</Link>
<Link className="content__link" to="#">
Согласие на обработку данных
</Link>
</div>
</div>
</section>
</section>
);
};

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
import React from "react";
import { Link, NavLink } from "react-router-dom";
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
import { Footer } from "@components/Common/Footer/Footer";
import arrow from "assets/icons/arrows/arrowLanding.svg";
@ -13,11 +12,6 @@ import ellipseGreen from "assets/images/landingTracker/ellipseGreen.svg";
import cat from "assets/images/landingTracker/landingCat.webp";
import flag from "assets/images/landingTracker/projectsFlag.webp";
import questionMark from "assets/images/landingTracker/questionMark.svg";
import reportingSystem from "assets/images/landingTracker/reportingSystem.webp";
import searchIT from "assets/images/landingTracker/searchIT.webp";
import systemControlGit from "assets/images/landingTracker/systemControlGit.webp";
import target from "assets/images/landingTracker/target.webp";
import taskManagement from "assets/images/landingTracker/taskManagement.webp";
import trackerCup from "assets/images/landingTracker/trackerCup.webp";
import trackerPreview from "assets/images/landingTracker/trackerPreview.webp";
import trackerSign from "assets/images/landingTracker/trackerSign.webp";
@ -27,20 +21,20 @@ import "./LandingTracker.scss";
export const LandingTracker = () => {
const goals = [
{
miniInfo: "Простота использования",
info: "<span>интуитивно понятный интерфейс</span> делает работу с нашим сервисом легкой и приятной"
miniInfo: "Окунитесь в экосистему ITGUIL",
info: "<span>уточнение</span> деталей и <span>обсуждение</span> условий с менеджером ITGUILD"
},
{
miniInfo: "Гибкость и адаптивность",
info: "мы предлогаем <span>инструменты, которые подойдут</span> именно вашему проекту"
miniInfo: "Окунитесь в экосистему ITGUIL",
info: "<span>подписание договора</span> без обязательств оплаты на данном этапе"
},
{
miniInfo: "Совместная работа без границ",
info: "сотрудничайте, общайтесь и делитесь ресурсами <span>в реальном времени, в любой точке мира</span>"
miniInfo: "Окунитесь в экосистему ITGUIL",
info: "<span>формирование</span> команды или подбор отдельных специалистов под требования клиентов"
},
{
miniInfo: "Безопасность и надежность",
info: "постоянный мониторинг системы <span>позволяет обеспечивать безопасность</span> ваших данных"
miniInfo: "Окунитесь в экосистему ITGUIL",
info: "<span>интеграция специалистов</span> в команду клиента, ежедневная отчетность под контролем менеджера ITGUILD"
}
];
@ -53,22 +47,22 @@ export const LandingTracker = () => {
{
name: "<span>Найти</span> работу <br/> в IT",
path: "/stack",
img: searchIT
img: cat
},
{
name: "<span>Система</span> контроля <br/> версий GIT",
path: "/stack",
img: systemControlGit
img: cat
},
{
name: "<span>Управление</span> <br/> задачами",
path: "/landing-tracker",
img: taskManagement
img: cat
},
{
name: "<span>Система</span> для <br/> отчётности",
path: "/stack",
img: reportingSystem
img: cat
},
{
name: "Все наши <br/> предложения",
@ -80,7 +74,6 @@ export const LandingTracker = () => {
return (
<section className="tracker">
<AuthHeader />
<section className="tracker__intro">
<img className="intro__question-mark" src={questionMark} alt="" />
<img className="intro__code" src={code} alt="" />
@ -127,7 +120,7 @@ export const LandingTracker = () => {
<Link to="/auth">войти</Link>
</button>
<button className="signUp">
<Link to="/auth">авторизация</Link>
<Link to="/auth">регистрация</Link>
</button>
</div>
<div className="presentation__tracker-preview">
@ -180,9 +173,9 @@ export const LandingTracker = () => {
);
})}
</div>
<div className="goals__target">
<img src={target} alt="target" />
</div>
{/* <div className="steps__portfolio">
<img src={portfolio} alt="portfolio" />
</div> */}
</div>
</section>
@ -202,7 +195,7 @@ export const LandingTracker = () => {
<Link to="/auth">войти</Link>
</button>
<button className="signUp">
<Link to="/auth">авторизация</Link>
<Link to="/auth">регистрация</Link>
</button>
</div>
</div>
@ -212,14 +205,6 @@ export const LandingTracker = () => {
</h3>
<img className="invite__logo__sign" src={trackerSign} alt="" />
<img className="invite__logo__ellipse" src={ellipseGreen} alt="" />
<div className="invite-auth__buttons">
<button className="signUp-modile">
<Link to="/auth">авторизация</Link>
</button>
<button className="signIn-modile">
<Link to="/auth">войти</Link>
</button>
</div>
</div>
</div>
</section>

View File

@ -1,31 +1,6 @@
.tracker {
font-family: "GT Eesti Pro Display";
// section:not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)):not(
// :nth-child(5)
// ):not(:nth-child(6)) {
// display: none;
// }
.auth-header {
display: none;
@media (max-width: 431px) {
display: flex;
background-color: #a7ca60;
}
.burger__line {
background-color: #4a4a4a;
}
.auth__buttons {
.signIn {
background-color: #eeeeee;
}
}
}
&__container {
margin: 0 auto;
// padding: 85px 0 90px;
@ -37,39 +12,22 @@
background-color: #a7ca60;
position: relative;
@media (max-width: 431px) {
height: 485px;
overflow: hidden;
}
.intro {
&__question-mark {
position: absolute;
right: 15%;
@media (max-width: 431px) {
display: none;
}
}
&__code {
position: absolute;
mix-blend-mode: plus-lighter;
bottom: 96px;
left: 16%;
@media (max-width: 431px) {
display: none;
}
}
&__code--top {
position: absolute;
mix-blend-mode: plus-lighter;
top: 20px;
left: 38%;
@media (max-width: 431px) {
display: none;
}
}
&__container {
@ -79,9 +37,6 @@
overflow: hidden;
@media (max-width: 431px) {
flex-direction: column-reverse;
align-items: center;
height: auto;
}
}
@ -96,10 +51,6 @@
font-size: 343px;
font-weight: 400;
line-height: 325.92px;
@media (max-width: 431px) {
display: none;
}
}
&__cup {
@ -107,17 +58,6 @@
bottom: -85px;
right: -150px;
@media (max-width: 431px) {
position: static;
margin: -90px 0 0 0;
}
img {
@media (max-width: 431px) {
height: 350px;
}
}
&::before {
content: "Не нужно заваривать мышь";
display: flex;
@ -142,12 +82,6 @@
line-height: 19.72px;
letter-spacing: 0.01em;
text-align: center;
@media (max-width: 431px) {
width: 125px;
height: 106px;
left: 170px;
}
}
}
}
@ -158,17 +92,9 @@
color: #607536;
max-width: 455px;
@media (max-width: 431px) {
margin: 0 20px;
}
&__sublogo {
margin-top: 37px;
@media (max-width: 431px) {
display: none;
}
h5 {
font-size: 29px;
font-weight: 900;
@ -196,13 +122,6 @@
line-height: 37.29px;
letter-spacing: 0.01em;
margin: 101px 0 34px 0;
@media (max-width: 431px) {
font-size: 29px;
line-height: 32.77px;
text-align: center;
margin: 21px 0 26px 0;
}
}
p {
@ -210,12 +129,6 @@
font-weight: 500;
line-height: 37.29px;
letter-spacing: 0.01em;
@media (max-width: 431px) {
font-size: 25px;
line-height: 28.25px;
text-align: center;
}
}
}
}
@ -231,20 +144,12 @@
mix-blend-mode: plus-lighter;
bottom: 225px;
right: 18%;
@media (max-width: 431px) {
display: none;
}
}
&__code--top {
position: absolute;
mix-blend-mode: plus-lighter;
top: 60px;
left: 25%;
@media (max-width: 431px) {
display: none;
}
}
&__ellipse {
position: absolute;
@ -253,10 +158,6 @@
top: -90px;
left: 50%;
transform: translate(-50%);
@media (max-width: 431px) {
display: none;
}
}
&__container {
@ -269,7 +170,6 @@
z-index: 2;
@media (max-width: 431px) {
height: 660px;
}
h5 {
@ -278,13 +178,6 @@
font-weight: 700;
line-height: 38.28px;
margin-top: 95px;
@media (max-width: 431px) {
font-size: 19px;
line-height: 22.04px;
text-align: center;
margin-top: 37px;
}
}
h4 {
@ -294,13 +187,6 @@
font-weight: 900;
line-height: 119.48px;
margin-top: 9px;
@media (max-width: 431px) {
font-size: 50px;
font-weight: 900;
line-height: 58px;
text-align: center;
}
}
p {
@ -312,13 +198,6 @@
max-width: 609px;
margin-bottom: 52px;
@media (max-width: 431px) {
font-size: 15px;
line-height: 17.4px;
text-align: center;
max-width: 370px;
}
span {
font-weight: 700;
}
@ -329,10 +208,6 @@
display: flex;
column-gap: 29px;
@media (max-width: 431px) {
column-gap: 12px;
}
button {
width: 185px;
height: 45px;
@ -363,13 +238,6 @@
margin-top: 61px;
position: relative;
@media (max-width: 431px) {
margin-top: 37px;
overflow: hidden;
height: 315px;
left: 150px;
}
.tracker-preview {
&__buttons {
display: flex;
@ -410,24 +278,12 @@
left: 21%;
z-index: 2;
@media (max-width: 431px) {
width: 255px;
height: 102px;
left: -22.26px;
border-radius: 24px 0px 44px 0px;
padding: 25px 0 0 60px;
}
span {
font-size: 26px;
font-weight: 900;
line-height: 28.34px;
letter-spacing: 0.03em;
text-align: left;
@media (max-width: 431px) {
max-width: 174px;
}
}
p {
@ -435,10 +291,6 @@
font-weight: 300;
line-height: 19.65px;
text-align: left;
@media (max-width: 431px) {
display: none;
}
}
}
}
@ -455,10 +307,6 @@
bottom: -96px;
left: 7%;
z-index: 1;
@media (max-width: 431px) {
display: none;
}
}
&__container {
@ -467,11 +315,6 @@
height: 720px;
text-align: center;
align-items: center;
@media (max-width: 431px) {
height: 1020px;
overflow: hidden;
}
}
&-head {
@ -490,13 +333,6 @@
filter: drop-shadow(7px 0px 10px rgba(0, 0, 0, 0.1294117647));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
@media (max-width: 431px) {
font-size: 110px;
line-height: 110px;
letter-spacing: 0.01em;
margin-top: 20px;
}
}
&__info {
@ -509,11 +345,6 @@
letter-spacing: 0.02em;
color: #eeeeee;
@media (max-width: 431px) {
bottom: -55px;
max-width: 372px;
}
span {
font-weight: 700;
}
@ -527,10 +358,9 @@
column-gap: 48px;
@media (max-width: 431px) {
display: grid;
grid-template-columns: 1fr 1fr;
flex-direction: column;
row-gap: 86px;
margin-top: 95px;
margin-top: 65px;
}
.item {
@ -539,17 +369,9 @@
&:nth-child(2) {
margin-right: 41px;
@media (max-width: 431px) {
margin: 0;
}
}
&:nth-child(3) {
margin-left: 41px;
@media (max-width: 431px) {
margin: 0;
}
}
}
@ -575,9 +397,8 @@
letter-spacing: 0.01em;
@media (max-width: 431px) {
font-size: 12px;
font-weight: 700;
max-width: 107px;
font-size: 14px;
max-width: 124px;
text-align: left;
}
}
@ -603,8 +424,8 @@
border-radius: 8px;
@media (max-width: 431px) {
width: 200px;
height: 205px;
width: 324px;
height: 153px;
}
.item {
@ -625,11 +446,6 @@
}
}
}
&__target {
position: absolute;
bottom: 0;
}
}
}
@ -650,33 +466,15 @@
height: 582px;
overflow: hidden;
column-gap: 133px;
@media (max-width: 431px) {
height: auto;
padding-top: 35px;
display: flex;
flex-direction: column;
}
}
&__info {
max-width: 541px;
@media (max-width: 431px) {
max-width: 377px;
margin: 0 auto;
}
h5 {
color: #607536;
font-size: 44px;
font-weight: 700;
line-height: 51.04px;
@media (max-width: 431px) {
font-size: 29px;
line-height: 33.64px;
}
}
p {
@ -686,10 +484,6 @@
font-weight: 300;
line-height: 19.72px;
@media (max-width: 431px) {
margin: 30px 0 22px 0;
}
span {
font-weight: 700;
}
@ -700,11 +494,6 @@
display: flex;
column-gap: 29px;
@media (max-width: 431px) {
flex-direction: column;
row-gap: 22px;
}
button {
width: 185px;
height: 45px;
@ -720,18 +509,6 @@
}
background-color: #ffffff;
border: none;
@media (max-width: 431px) {
display: none;
}
&-modile {
a {
color: #607536;
}
background-color: #ffffff;
border: none;
}
}
.signUp {
@ -740,18 +517,6 @@
}
border: 1px solid #ffffff;
background: none;
@media (max-width: 431px) {
display: none;
}
&-modile {
a {
color: #ffffff;
}
border: 1px solid #ffffff;
background: none;
}
}
}
@ -761,12 +526,6 @@
position: relative;
align-items: center;
@media (max-width: 431px) {
flex-direction: row;
padding-left: 18px;
column-gap: 18px;
}
h3 {
color: #ffffff;
font-family: "Geraspoheko";
@ -775,13 +534,6 @@
line-height: 325.92px;
z-index: 3;
position: relative;
@media (max-width: 431px) {
font-size: 140px;
font-weight: 400;
line-height: 140px;
z-index: 2;
}
}
&__sign {
@ -789,12 +541,6 @@
z-index: 2;
left: -180px;
top: 70px;
@media (max-width: 431px) {
width: 90px;
left: -40px;
top: 50px;
}
}
&__ellipse {
@ -802,11 +548,6 @@
width: 463px;
height: 563px;
z-index: 1;
@media (max-width: 431px) {
width: 220px;
height: 220px;
}
}
}
}
@ -830,10 +571,6 @@
display: flex;
flex-direction: column;
align-items: center;
@media (max-width: 431px) {
height: 1170px;
}
}
&__project {
@ -845,15 +582,6 @@
border-radius: 8px;
border: 1px solid #f8f8f8;
@media (max-width: 431px) {
align-items: normal;
flex-direction: column;
row-gap: 32px;
height: 266px;
max-width: 397px;
padding: 32px 30px;
}
.project__img {
border-radius: 8px;
width: 99px;
@ -892,11 +620,6 @@
letter-spacing: 0.03em;
text-align: center;
margin: 42px 0 77px 0;
@media (max-width: 431px) {
font-size: 19px;
line-height: 22.04px;
}
}
&__opportunities {
@ -926,8 +649,6 @@
@media (max-width: 431px) {
padding: 0;
width: 40%;
height: auto;
display: block;
div {
display: flex;
@ -942,7 +663,6 @@
border: 0.5px solid #ffffff;
border-radius: 18px;
padding: 10px;
height: 221px;
}
}

View File

@ -1,319 +1,13 @@
import React, { useState } from "react";
import React from "react";
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 { VacancyItem } from "@components/VacancyItem/VacancyItem";
import { VacancyTab } from "@components/VacancyTab/VacancyTab";
import "./OpenRequest.scss";
export const OpenRequest = () => {
const vacancy = [
{
name: "Frontend",
count: 15,
items: [
{
name: "Laravel Middle+/Senior 1",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 2",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 3",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 4",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 5",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 6",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
}
]
},
{
name: "Backend",
count: 8,
items: [
{
name: "Laravel Middle+/Senior 7",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 8",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
}
]
},
{
name: "Дизайн",
count: 0,
items: [
{
name: "Laravel Middle+/Senior 9",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 10",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
}
]
},
{
name: "Аналитика",
count: 0,
items: [
{
name: "Laravel Middle+/Senior 11",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 12",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 13",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
}
]
},
{
name: "Тестирование",
count: 0,
items: [
{
name: "Laravel Middle+/Senior 14",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 15",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior 16",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
},
{
name: "Laravel Middle+/Senior",
description:
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
level: "Middle+/Senior",
location: "РФ, РБ",
price: "1500 руб. час",
count: "1 сотрудник"
}
]
}
];
const [activeTab, setActiveTab] = useState("Frontend");
return (
<div className="open-request">
<ProfileHeader />
@ -325,34 +19,11 @@ export const OpenRequest = () => {
{ name: "Главная", link: "/profile" },
{
name: "Работа в IT открытые запросы",
link: "/profile/open-requests"
link: "/profile/open-request"
}
]}
/>
<h2 className="summary__title">Работа в IT открытые запросы</h2>
<div className="vacancy__tabs">
{vacancy.map((item, index) => {
return (
<VacancyTab
title={item.name}
count={item.count}
active={activeTab}
setActive={() => setActiveTab(item.name)}
key={index}
/>
);
})}
</div>
<div className="vacancy__items">
{vacancy.map((item) => {
if (item.name === activeTab) {
return item.items.map((vacancy, index) => {
return <VacancyItem key={index} vacancy={vacancy} />;
});
}
return null;
})}
</div>
</div>
</div>
<Footer />

View File

@ -1,23 +0,0 @@
.open-request {
background: #F0F0F0;
&-content {
padding-top: 23px;
}
}
.vacancy {
&__tabs {
display: flex;
gap: 8px;
margin-top: 29px;
}
&__items {
display: flex;
flex-wrap: wrap;
row-gap: 24px;
column-gap: 22.5px;
margin-top: 30px;
}
}

View File

@ -92,13 +92,13 @@ export const PartnerEmployeeReport = () => {
<>
<div className="employee-report__info">
<div className="employee-report__name">
<h2>{userInfo?.userCard.fio}</h2>
<p>{userInfo?.userCard.position.name}</p>
<h2>{userInfo.fio}</h2>
<p>{userInfo.position}</p>
</div>
<div className="employee-report__skills">
{userInfo?.userCard?.skillValues &&
userInfo?.userCard?.skillValues.map((skill) => {
return <span key={skill.id}>{skill.skill.name}</span>;
{userInfo?.stack &&
userInfo.stack.map((skill, index) => {
return <span key={index}>{skill}</span>;
})}
</div>
</div>

View File

@ -1,4 +1,4 @@
import React, { useEffect, useState } from "react";
import React, { useState } from "react";
import { apiRequest } from "@api/request";
@ -11,7 +11,6 @@ import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import tgSettingsIcon from "assets/icons/tgSettingsIcon.svg";
import astral from "assets/images/logo/astralLogo.png";
import kontur from "assets/images/logo/konturLogo.png";
@ -19,7 +18,6 @@ import "./partnerSettings.scss";
export const PartnerSettings = () => {
const { showNotification } = useNotification();
const [tgToken, setTgToken] = useState();
const [inputsValue, setInputsValue] = useState({
name: "",
oldPassword: "",
@ -32,15 +30,6 @@ export const PartnerSettings = () => {
});
const [loader, setLoader] = useState(false);
const [tgLoader, setTgLoader] = useState(false);
// useEffect(() => {
// apiRequest("/user-tg-bot/get-token", {
// method: "GET"
// }).then((data) => {
// setTgToken(data.token);
// });
// }, []);
const setSettings = () => {
if (inputsValue.name.length < 2) {
@ -91,49 +80,6 @@ export const PartnerSettings = () => {
});
});
};
const handleGenerate = async () => {
if (tgToken == undefined) {
setTgLoader(true);
apiRequest("/user-tg-bot/get-token", {
method: "GET"
}).then((data) => {
setTgToken(data.token);
showNotification({
show: true,
text: "Телеграм токен успешно сгенерирован",
type: "success"
});
setTgLoader(false);
});
}
};
const handleCopy = async () => {
if (tgToken !== undefined) {
try {
await navigator.clipboard.writeText(tgToken);
showNotification({
show: true,
text: "Телеграм токен успешно скопирован",
type: "success"
});
} catch (err) {
showNotification({
show: true,
text: "Ошибка копирования",
type: "error"
});
}
} else {
showNotification({
show: true,
text: "Необходимо сгенерировать код",
type: "error"
});
}
};
return (
<div className="settings">
<ProfileHeader />
@ -237,40 +183,6 @@ export const PartnerSettings = () => {
использования персональных данных
</span>
</div>
<div className="partner-settings__report">
<h3 className="settings__title">Телеграмм бот</h3>
<p className="settings__label">Тelegram токен</p>
<div className="settings__input">
<span>{tgToken}</span>
</div>
<div className="settings__buttons">
{tgLoader ? (
<Loader style={"green"} width={"40px"} height={"40px"} />
) : (
<BaseButton
onClick={handleGenerate}
styles={"settings__buttons-save"}
>
Сгенерировать
</BaseButton>
)}
<BaseButton
onClick={handleCopy}
styles={"settings__buttons-save"}
>
Скопировать
</BaseButton>
</div>
<div className="settings__agreement-tg">
<a href="#" target="_blank" rel="noopener noreferrer">
<img src={tgSettingsIcon} alt="" />
</a>
Ссылка на телеграм бот с инструкцией
</div>
</div>
{/* <div className="partner-settings__report">
<h3 className="settings__title">Документы и отчеты</h3>
<p className="settings__label">Изменить провадера ЭДО</p>

View File

@ -29,14 +29,13 @@
font-size: 15px;
line-height: 18px;
color: #000000;
margin: 30px 0 10px 0;
margin: 15px 0 10px 0;
}
&__input {
display: flex;
flex-direction: column;
row-gap: 5px;
input {
padding: 5px 10px;
background: #eff2f7;
@ -47,16 +46,6 @@
outline: none;
}
span {
padding: 5px 10px;
background: #eff2f7;
border-radius: 8px;
height: 35px;
border: none;
font-size: 15px;
outline: none;
}
.error {
color: red;
font-size: 12px;
@ -76,25 +65,14 @@
line-height: 18px;
color: #000000;
font-weight: 300;
&-tg {
font-size: 15px;
font-weight: 400;
line-height: 18px;
img {
width: 40px;
height: 40px;
margin-right: 20px;
}
}
}
&__buttons {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-around;
justify-content: flex-start;
gap: 20px;
margin: 30px 0 20px;
&-cancel,
@ -129,11 +107,21 @@
}
}
@media (max-width: 440px) {
@media (max-width: 800px) {
&__input {
width: 95%;
}
&__buttons {
flex-direction: column;
gap: 10px;
margin: 15px 0 14px 0;
width: 100%;
flex-direction: column-reverse;
align-items: center;
gap: 0px;
&-save {
margin-bottom: 15px;
}
}
}
}
@ -152,8 +140,6 @@
display: flex;
flex-direction: row;
margin-top: 50px;
column-gap: 40px;
justify-content: center;
}
&__report,

View File

@ -17,12 +17,25 @@ import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadc
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import rightArrow from "assets/icons/arrows/arrowRight.svg";
import folder from "assets/icons/folder.svg";
import report from "assets/icons/report.svg";
// import PartnerPersonCard from "@components/PartnerPersonCard/PartnerPersonCard";
// import { useDispatch } from "react-redux";
// import { setPartnerEmployees } from "@redux/outstaffingSlice";
// import rightArrow from "assets/icons/arrows/arrowRight.svg";
// import avatarImg from "assets/images/avatarMok.png";
// import AdminImg from "assets/images/partnerProfile/PersonalAdmin.svg";
// import ArchitectureImg from "assets/images/partnerProfile/PersonalArchitecture.svg";
// import CopyImg from "assets/images/partnerProfile/PersonalCopy.svg";
// import DesignImg from "assets/images/partnerProfile/PersonalDesign.svg";
// import FrontendImg from "assets/images/partnerProfile/PersonalFrontend.svg";
// import ManageImg from "assets/images/partnerProfile/PersonalMng.svg";
// import SmmImg from "assets/images/partnerProfile/PersonalSMM.svg";
// import TestImg from "assets/images/partnerProfile/PersonalTesters.svg";
// import BackEndImg from "assets/images/partnerProfile/personalBackEnd.svg";
import "./partnerСategories.scss";
export const PartnerCategories = () => {
// const dispatch = useDispatch();
if (localStorage.getItem("role_status") !== "18") {
return <Navigate to="/profile" replace />;
}
@ -31,62 +44,34 @@ export const PartnerCategories = () => {
const theme = useTheme(getTheme());
const [nodes, setNodes] = useState([]);
const [initialNodes, setInitialNodes] = useState([]);
const [activeTab, setActiveTab] = useState(0);
const [search, setSearch] = useState("");
const tabs = [
{
name: "Фронтенд",
value: 2
},
{
name: "Бэкенд",
value: 1
}
];
const COLUMNS = [
{
label: "",
renderCell: (item) => (
<Link to={`/profile/summary/${item.user_id}`}>
<img
className="table__avatar"
src={urlForLocal(item?.employee.avatar)}
alt="avatar"
/>
</Link>
<img
className="table__avatar"
src={urlForLocal(item?.employee.avatar)}
alt="avatar"
/>
)
},
{
label: "Данные",
renderCell: (item) => (
<Link className="table__info" to={`/profile/summary/${item.user_id}`}>
<p>{item?.employee.fio}</p>
<span>
{item?.employee.level_title} / {item?.employee.position.name}
</span>
</Link>
)
label: "ФИО",
renderCell: (item) => <p>{item?.employee.fio}</p>,
sort: { sortKey: "NAME" }
},
{
label: "Участвует в проекте",
label: "Резюме",
renderCell: (item) => (
<div className="table__project">
{item?.employee.projects.length ? (
item.employee.projects.map((project) => {
return (
<div className="table__project__item" key={project.id}>
<img src={folder} alt="folder" />{" "}
<p>{project.project.name}</p>
</div>
);
})
) : (
<span>Нет проектов</span>
)}
</div>
<Link className="table__link" to={`/candidate/${item.user_id}`}>
Резюме
<div className="img__wrapper">
<img src={rightArrow} alt="arrow" />
</div>
</Link>
)
},
{
@ -96,17 +81,12 @@ export const PartnerCategories = () => {
className="table__link"
to={`/profile/employees/report/${item.user_id}`}
>
<img src={report} alt="report" />
Подробный отчет
<div className="img__wrapper">
<img src={rightArrow} alt="arrow" />
</div>
</Link>
)
},
{
label: <span className="table__action">Действие</span>,
renderCell: () => <div className="table__more"></div>
}
];
@ -135,9 +115,9 @@ export const PartnerCategories = () => {
useEffect(() => {
setLoader(true);
apiRequest("/project/my-employee").then((el) => {
setNodes(el.managerEmployees);
setInitialNodes(el.managerEmployees);
setLoader(false);
setNodes(el?.managerEmployees);
setInitialNodes(el.managerEmployees);
});
}, []);
@ -156,6 +136,108 @@ export const PartnerCategories = () => {
console.log(action, state);
}
// const [personalInfoItems] = useState([
// {
// title: "Backend разработчики",
// link: "/profile/categories/employees",
// description:
// "Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript",
// available: true,
// img: BackEndImg
// },
// {
// title: "Frontend разработчики",
// link: "/profile/categories/employees",
// description:
// "Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript",
// available: true,
// img: FrontendImg
// },
// {
// title: "Архитектура проектов",
// link: "/profile/categories/employees",
// description: "Потоки данных ER ERP CRM CQRS UML BPMN",
// available: true,
// img: ArchitectureImg
// },
// {
// title: "Дизайн проектов",
// link: "/profile/categories/employees",
// description:
// "Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript",
// available: true,
// img: DesignImg
// },
// {
// title: "Тестирование проектов",
// link: "/profile/add-request",
// description: "SQL Postman TestRail Kibana Ручное тестирование",
// available: false,
// img: TestImg
// },
// {
// title: "Администрирование проектов",
// link: "/profile/add-request",
// description: "DevOps ELK Kubernetes Docker Bash Apache Oracle Git",
// available: false,
// img: AdminImg
// },
// {
// title: "Управление проектом",
// link: "/profile/add-request",
// description: "Scrum Kanban Agile Miro CustDev",
// available: false,
// img: ManageImg
// },
// {
// title: "Копирайтинг проектов",
// link: "/profile/add-request",
// description: "Теги Заголовок H1 Дескриптор Абзац Сценарий",
// available: false,
// img: CopyImg
// },
// {
// title: "Реклама и SMM",
// link: "/profile/add-request",
// description:
// "Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript",
// available: false,
// img: SmmImg
// }
// ]);
// const [mokPersons] = useState([
// {
// personAvatar: avatarImg,
// name: "Макаренко Дмитрий",
// qualification: "PHP Backend - разработчик",
// level: "Middle",
// project: "Админка НВД Консалтинг",
// tasks_in_progress: 5,
// month_hours: 140,
// id: 1
// },
// {
// personAvatar: avatarImg,
// name: "Макаренко Дмитрий",
// qualification: "PHP Backend - разработчик",
// level: "Middle",
// project: "Админка НВД Консалтинг",
// tasks_in_progress: 5,
// month_hours: 140,
// id: 2
// },
// {
// personAvatar: avatarImg,
// name: "Макаренко Дмитрий",
// qualification: "PHP Backend - разработчик",
// level: "Middle",
// project: "Админка НВД Консалтинг",
// tasks_in_progress: 5,
// month_hours: 140,
// id: 3
// }
// ]);
return (
<div className="partner-categories">
<ProfileHeader />
@ -184,43 +266,6 @@ export const PartnerCategories = () => {
onChange={handleSearch}
/>
</label>
<div className="table__tabs">
<div
onClick={() => {
setActiveTab(0);
setNodes(initialNodes);
}}
className={
activeTab === 0
? "table__tab table__tab--active"
: "table__tab"
}
>
Все
</div>
{tabs.map((tab) => {
return (
<div
onClick={() => {
setActiveTab(tab.name);
setNodes(
initialNodes.filter(
(item) => item.employee.position.id === tab.value
)
);
}}
className={
activeTab === tab.name
? "table__tab table__tab--active"
: "table__tab"
}
key={tab.value}
>
{tab.name}
</div>
);
})}
</div>
<CompactTable
columns={COLUMNS}
data={data}
@ -228,61 +273,54 @@ export const PartnerCategories = () => {
sort={sort}
pagination={pagination}
/>
{Boolean(nodes.length) &&
pagination.state.getPages(data.nodes).length > 1 && (
<div className="table__pagination">
<div className="table__pagination">
<button
className={
pagination.state.page === 0 ? "switch disable" : "switch"
}
type="button"
disabled={pagination.state.page === 0}
onClick={() =>
pagination.fns.onSetPage(pagination.state.page - 1)
}
>
{"<"}
</button>
<span className="table__pages">
{pagination.state.getPages(data.nodes).map((_, index) => (
<button
className={
pagination.state.page === 0
? "switch disable"
: "switch"
}
key={index}
type="button"
disabled={pagination.state.page === 0}
onClick={() =>
pagination.fns.onSetPage(pagination.state.page - 1)
}
>
{"<"}
</button>
<span className="table__pages">
{pagination.state
.getPages(data.nodes)
.map((_, index) => (
<button
key={index}
type="button"
className={
pagination.state.page === index
? "page page--active "
: "page"
}
onClick={() => pagination.fns.onSetPage(index)}
>
{index + 1}
</button>
))}
</span>
<button
className={
pagination.state.page + 1 ===
pagination.state.getPages(data.nodes).length
? "switch disable"
: "switch"
}
type="button"
disabled={
pagination.state.page + 1 ===
pagination.state.getPages(data.nodes).length
}
onClick={() =>
pagination.fns.onSetPage(pagination.state.page + 1)
pagination.state.page === index
? "page page--active "
: "page"
}
onClick={() => pagination.fns.onSetPage(index)}
>
{">"}
{index + 1}
</button>
</div>
)}
))}
</span>
<button
className={
pagination.state.page + 1 ===
pagination.state.getPages(data.nodes).length
? "switch disable"
: "switch"
}
type="button"
disabled={
pagination.state.page + 1 ===
pagination.state.getPages(data.nodes).length
}
onClick={() =>
pagination.fns.onSetPage(pagination.state.page + 1)
}
>
{">"}
</button>
</div>
</>
) : (
<div className="partner-categories__empty">
@ -293,6 +331,39 @@ export const PartnerCategories = () => {
</Link>
</div>
)}
{/*{personalInfoItems.map((item, index) => {*/}
{/* return (*/}
{/* <Link*/}
{/* to={item.link}*/}
{/* key={index}*/}
{/* className={*/}
{/* item.available*/}
{/* ? "partner-categories__item item"*/}
{/* : "partner-categories__item item item__disable"*/}
{/* }*/}
{/* onClick={() => {*/}
{/* dispatch(setPartnerEmployees(mokPersons));*/}
{/* }}*/}
{/* >*/}
{/* <div className="item__title">*/}
{/* <img src={item.img} alt={item.title} />*/}
{/* <h4>{item.title}</h4>*/}
{/* </div>*/}
{/* <div className="item__info">*/}
{/* <p>{item.description}</p>*/}
{/* <div className="more">*/}
{/* <img src={rightArrow} alt="arrow" />*/}
{/* </div>*/}
{/* </div>*/}
{/* {!item.available && (*/}
{/* <div className="item__disable-hover">*/}
{/* <p>У вас нет персонала из категории</p>*/}
{/* <button>Подобрать</button>*/}
{/* </div>*/}
{/* )}*/}
{/* </Link>*/}
{/* );*/}
{/*})}*/}
</div>
)}
</div>

View File

@ -178,56 +178,10 @@
}
}
&__tabs {
display: flex;
margin: 0 auto 30px 18px;
padding: 4px 8px;
gap: 10px;
align-items: center;
font-size: 16px;
background: rgba(240, 242, 245, 1);
border-radius: 5px;
}
&__tab {
padding: 8px 12px;
cursor: pointer;
color: rgba(46, 58, 89, 1);
font-size: 15px;
&--active {
background: rgba(255, 255, 255, 1);
font-size: 16px;
border-radius: 5px;
border: 0;
}
&:nth-child(2) {
border-right: 1px solid rgba(224, 226, 229, 1);
border-left: 1px solid rgba(224, 226, 229, 1);
}
}
&__avatar {
width: 40px;
height: 40px;
margin-left: 18px;
max-width: 45px;
}
&__info {
p {
color: rgba(46, 58, 89, 1);
font-size: 14px;
font-weight: 500;
line-height: 17.5px;
}
span {
color: rgba(155, 171, 197, 1);
font-size: 14px;
line-height: 17.5px;
}
}
&__link {
display: flex;
column-gap: 10px;
@ -245,76 +199,11 @@
justify-content: center;
img {
width: 8px;
width: 14px;
}
}
}
&__project {
color: rgba(46, 58, 89, 1);
font-size: 14px;
font-weight: 500;
line-height: 17.5px;
display: flex;
flex-wrap: wrap;
gap: 11px;
&__item {
border-radius: 5px;
padding: 8px;
color: rgba(46, 58, 89, 1);
font-size: 14px;
border: 1px solid rgba(237, 237, 237, 1);
display: flex;
gap: 8px;
p {
max-width: 100px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
}
&__action {
color: rgba(155, 171, 197, 1);
font-size: 14px;
font-weight: 400;
}
&__more {
position: relative;
height: 30px;
cursor: pointer;
width: 10px;
display: flex;
align-items: center;
justify-content: space-evenly;
flex-direction: column;
&:before {
content: '';
display: flex;
top: 2px;
width: 4px;
height: 4px;
background: rgba(155, 171, 197, 1);
border-radius: 50px;
position: relative;
}
&:after {
content: '';
display: flex;
bottom: 2px;
width: 4px;
height: 4px;
background: rgba(155, 171, 197, 1);
border-radius: 50px;
position: relative;
}
}
&__pagination {
width: 100%;
display: flex;
@ -362,7 +251,6 @@
}
table {
--data-table-library_grid-template-columns: minmax(0px, 0.5fr) minmax(0px, 1.5fr) minmax(0px, 1fr) minmax(0px, 1fr) minmax(0px, 1fr) !important;
th {
border-top: 0;
border-bottom: 1px solid #EDEDED;

View File

@ -1,9 +1,7 @@
import React from "react";
import { Footer } from "@components/Common/Footer/Footer";
import { EmptyBlock } from "@components/EmptyBlock/EmptyBlock";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import "./payouts.scss";
@ -13,16 +11,7 @@ export const Payouts = () => {
<div className="payouts">
<ProfileHeader />
<Navigation />
<div className="container">
<ProfileBreadcrumbs
links={[
{ name: "Главная", link: "/profile" },
{ name: "Выплаты и финансы ", link: "/profile/payouts" }
]}
/>
<h3 className="payouts__title">Выплаты и финансы </h3>
<EmptyBlock />
</div>
<div className="container"></div>
<Footer />
</div>
);

Some files were not shown because too many files have changed in this diff Show More