diff --git a/src/assets/icons/authHead.svg b/src/assets/icons/authHead.svg new file mode 100644 index 00000000..2d3ac0b3 --- /dev/null +++ b/src/assets/icons/authHead.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/assets/icons/passwordIcon.svg b/src/assets/icons/passwordIcon.svg new file mode 100644 index 00000000..90aeacf7 --- /dev/null +++ b/src/assets/icons/passwordIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/mock/avatarMoсk3.png b/src/assets/images/mock/avatarMoсk3.png new file mode 100644 index 00000000..1fd5d40b Binary files /dev/null and b/src/assets/images/mock/avatarMoсk3.png differ diff --git a/src/assets/images/mock/avatarMoсk4.png b/src/assets/images/mock/avatarMoсk4.png new file mode 100644 index 00000000..e1fabb50 Binary files /dev/null and b/src/assets/images/mock/avatarMoсk4.png differ diff --git a/src/assets/images/mock/avatarMoсk5.png b/src/assets/images/mock/avatarMoсk5.png new file mode 100644 index 00000000..2c9d44dc Binary files /dev/null and b/src/assets/images/mock/avatarMoсk5.png differ diff --git a/src/assets/images/mock/avatarMoсk6.png b/src/assets/images/mock/avatarMoсk6.png new file mode 100644 index 00000000..17ca4b72 Binary files /dev/null and b/src/assets/images/mock/avatarMoсk6.png differ diff --git a/src/components/AuthBox/AuthBox.jsx b/src/components/AuthBox/AuthBox.jsx index c4275b36..9485f949 100644 --- a/src/components/AuthBox/AuthBox.jsx +++ b/src/components/AuthBox/AuthBox.jsx @@ -12,7 +12,8 @@ import { Loader } from "@components/Common/Loader/Loader"; import ModalErrorLogin from "@components/Modal/ModalErrorLogin/ModalErrorLogin"; import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration"; -import ellipse from "assets/icons/ellipse.png"; +import authHead from "assets/icons/authHead.svg" +import eyePassword from "assets/icons/passwordIcon.svg" import "./authBox.scss"; @@ -27,6 +28,7 @@ export const AuthBox = ({ title }) => { const [error, setError] = useState(null); const [modalError, setModalError] = useState(false); const [modalReg, setModalReg] = useState(false); + const [showPassword, setShowPassword] = useState(false) useEffect(() => { if (!localStorage.getItem("auth_token")) { @@ -73,23 +75,25 @@ export const AuthBox = ({ title }) => { return (

- Войти в систему + Вход authImg

- . {title}
- + - - + +
+ + setShowPassword(!showPassword)} className='eye' src={eyePassword} alt='eye' /> +
{error && (
@@ -111,18 +115,23 @@ export const AuthBox = ({ title }) => { > {isLoading ? : "Войти"} + + Вспомнить пароль + -
+

+ У вас еще нет аккаунта?   + { + e.preventDefault(); + setModalReg(true); + }} + > + Зарегистрироваться + +

); diff --git a/src/components/AuthBox/authBox.scss b/src/components/AuthBox/authBox.scss index 4e950806..9759446e 100644 --- a/src/components/AuthBox/authBox.scss +++ b/src/components/AuthBox/authBox.scss @@ -9,8 +9,7 @@ } &__header { - font-family: "GT Eesti Pro Display"; - font-size: 5.3em; + font-size: 50px; font-weight: 700; font-style: normal; letter-spacing: normal; @@ -35,7 +34,6 @@ } &__sign-in { - font-family: "GT Eesti Pro Display"; font-size: 5.3em; font-weight: 700; font-style: normal; @@ -45,7 +43,6 @@ margin-top: 164px; span { - font-family: "GT Eesti Pro Display"; color: #52b709; font-style: normal; letter-spacing: 0.56px; @@ -55,21 +52,14 @@ &__title { display: flex; - align-items: center; - justify-content: center; - margin-top: 15px; - margin-bottom: 65px; + margin-bottom: 54px; span { - color: #18586e; - font-family: "GT Eesti Pro Display"; - font-size: 2em; - font-weight: 500; + color: #8DC63F; + font-size: 50px; + font-weight: 700; font-style: normal; letter-spacing: normal; - line-height: 16.81px; - text-align: left; - margin-left: 10px; } img { @@ -92,34 +82,46 @@ flex-direction: column; label { - color: #48802d; - font-family: "GT Eesti Pro Display"; - font-size: 2.4em; - font-weight: 500; + font-size: 16px; + font-weight: 400; font-style: normal; letter-spacing: normal; - line-height: 16.81px; + line-height: 19.2px; text-align: left; - margin-bottom: 20px; - margin-left: 45px; + margin-bottom: 25px; + color: #000000; + } + + .inputWrapper { + width: 366px; + position: relative; + + .eye { + cursor: pointer; + position: absolute; + right: 20px; + top: 15px; + } } input { max-width: 366px; - height: 75px; - box-shadow: 0 0 59px rgba(44, 44, 44, 0.05); - border-radius: 37px; - border: 1px solid #c4c4c4; + width: 100%; + height: 52.5px; + //box-shadow: 0 0 59px rgba(44, 44, 44, 0.05); + border-radius: 8px; + //border: 1px solid #c4c4c4; + border: none; background-color: #ffffff; - margin-bottom: 60px; - font-family: "GT Eesti Pro Display"; - font-size: 2.2em; - font-weight: 300; + margin-bottom: 35px; + font-size: 15px; + font-weight: 400; + line-height: 18px; font-style: normal; letter-spacing: normal; line-height: normal; text-align: left; - padding-left: 45px; + padding: 16px 15px 16px 22px; outline: none; } @@ -130,10 +132,10 @@ } &-btn { - width: 268px; - height: 75px; - box-shadow: 6px 5px 20px rgba(82, 151, 34, 0.21); - border-radius: 38px; + width: 138px; + height: 50px; + //box-shadow: 6px 5px 20px rgba(82, 151, 34, 0.21); + border-radius: 44px; background-color: #ffffff; background-image: linear-gradient(to top, #6aaf5c 0%, #52b709 100%), linear-gradient( @@ -145,12 +147,10 @@ ); border: none; color: #ffffff; - font-family: "Muller"; font-weight: 500; font-size: 2.2em; - font-weight: bold; letter-spacing: normal; - line-height: 71.88px; + line-height: 32px; text-align: center; border: 2px solid #6aaf5c; margin-right: 1.5rem; @@ -164,7 +164,8 @@ //color: #6aaf5c !important; .loader * { - fill: #6aaf5c; + fill: #fff !important; + max-width: 40px; } } @@ -174,7 +175,6 @@ border-radius: 38px; background-color: #f5f5f5; border: 2px solid #6aaf5c; - font-family: "Muller"; font-size: 2em; font-weight: 400; letter-spacing: normal; @@ -186,9 +186,32 @@ .loader * { fill: #fff !important; + max-width: 40px; } } } + + &__reset { + color: #000000; + font-size: 13px; + line-height: 16px; + cursor: pointer; + text-decoration: underline; + } + + &__registration { + color: #000000; + font-size: 17px; + font-weight: 400; + margin-top: 45px; + line-height: 32px; + + span { + cursor: pointer; + color: #52B709; + font-weight: 700; + } + } } @media (max-width: 575.98px) { diff --git a/src/components/Common/AuthHeader/AuthHeader.jsx b/src/components/Common/AuthHeader/AuthHeader.jsx index 7ebe2613..fb201b21 100644 --- a/src/components/Common/AuthHeader/AuthHeader.jsx +++ b/src/components/Common/AuthHeader/AuthHeader.jsx @@ -25,7 +25,12 @@ export const AuthHeader = () => {
  • - Кабинет разработчика + { + e.preventDefault(); + scrollToForm(); + }} + >Кабинет разработчика
  • Школа diff --git a/src/components/Modal/Tracker/ModalTicket/ModalTicket.jsx b/src/components/Modal/Tracker/ModalTicket/ModalTicket.jsx index 363611e8..fc0d2d81 100644 --- a/src/components/Modal/Tracker/ModalTicket/ModalTicket.jsx +++ b/src/components/Modal/Tracker/ModalTicket/ModalTicket.jsx @@ -113,6 +113,13 @@ export const ModalTiсket = ({ } function editTask() { + if (!inputsValue.title || !inputsValue.description) { + return showNotification({ + show: true, + text: "Заполните поля", + type: "error", + }); + } apiRequest("/task/update-task", { method: "PUT", data: { @@ -121,6 +128,7 @@ export const ModalTiсket = ({ description: inputsValue.description, }, }).then((res) => { + setEditOpen(!editOpen); dispatch(setProjectBoardFetch(projectId)); showNotification({ show: true, @@ -809,7 +817,6 @@ export const ModalTiсket = ({ className={editOpen ? "edit" : ""} onClick={() => { if (editOpen) { - setEditOpen(!editOpen); editTask(); } else { setEditOpen(!editOpen); diff --git a/src/components/Modal/Tracker/ModalTicket/modalTicket.scss b/src/components/Modal/Tracker/ModalTicket/modalTicket.scss index 32ea56a6..92a9b29d 100644 --- a/src/components/Modal/Tracker/ModalTicket/modalTicket.scss +++ b/src/components/Modal/Tracker/ModalTicket/modalTicket.scss @@ -2,7 +2,7 @@ z-index: 9; height: 100%; width: 100%; - background-color: rgba(0, 0, 0, 0.11); + background-color: rgba(0, 0, 0, 0.8); position: fixed; top: 0; left: 0; @@ -126,12 +126,24 @@ } .taskDescription { - display: -webkit-box; - max-width: 550px; - overflow: hidden; - text-overflow: ellipsis; - -webkit-line-clamp: 7; - -webkit-box-orient: vertical; + max-height: 150px; + overflow-y: auto; + padding-right: 10px; + + &::-webkit-scrollbar { + width: 4px; + border-radius: 10px; + } + + &::-webkit-scrollbar-thumb { + background: #cbd9f9; + border-radius: 10px; + } + + &::-webkit-scrollbar-track { + background: #c5c0c6; + border-radius: 10px; + } } .fullName { diff --git a/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx b/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx index a624be02..bc5162e8 100644 --- a/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx +++ b/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx @@ -173,6 +173,13 @@ export const TicketFullScreen = () => { } function editTask() { + if (!inputsValue.title || !inputsValue.description) { + return showNotification({ + show: true, + text: "Заполните поля", + type: "error", + }); + } apiRequest("/task/update-task", { method: "PUT", data: { @@ -186,6 +193,7 @@ export const TicketFullScreen = () => { text: "Изменения сохранены", type: "success", }); + setEditOpen(!editOpen); }); } @@ -985,7 +993,6 @@ export const TicketFullScreen = () => { className={editOpen ? "edit" : ""} onClick={() => { if (editOpen) { - setEditOpen(!editOpen); editTask(); } else { setEditOpen(!editOpen); diff --git a/src/components/Modal/Tracker/TrackerModal/TrackerModal.jsx b/src/components/Modal/Tracker/TrackerModal/TrackerModal.jsx index 23a6070d..86e5f63c 100644 --- a/src/components/Modal/Tracker/TrackerModal/TrackerModal.jsx +++ b/src/components/Modal/Tracker/TrackerModal/TrackerModal.jsx @@ -133,13 +133,13 @@ export const TrackerModal = ({ dispatch(setProjectBoardFetch(projectBoard.id)); setActive(false); setValueTiket(""); - setDescriptionTicket("Описание задачи"); + setDescriptionTicket(""); setSelectedExecutorTask("Выберите исполнителя задачи"); }); } else { setActive(false); setValueTiket(""); - setDescriptionTicket("Описание задачи"); + setDescriptionTicket(""); dispatch(setProjectBoardFetch(projectBoard.id)); } showNotification({ diff --git a/src/components/SliderWorkers/SliderWorkers.jsx b/src/components/SliderWorkers/SliderWorkers.jsx index 7167a8e7..ecc277a9 100644 --- a/src/components/SliderWorkers/SliderWorkers.jsx +++ b/src/components/SliderWorkers/SliderWorkers.jsx @@ -7,6 +7,10 @@ import "slick-carousel/slick/slick.css"; import BaseButton from "@components/Common/BaseButton/BaseButton"; import mockWorker from "assets/images/mock/mokPerson.png"; +import avatarMockFirst from "assets/images/mock/avatarMoсk3.png" +import avatarMockSecond from "assets/images/mock/avatarMoсk4.png" +import avatarMockThird from "assets/images/mock/avatarMoсk5.png" +import avatarMockFourth from "assets/images/mock/avatarMoсk6.png" import "./sliderWorkers.scss"; @@ -17,19 +21,19 @@ export const SliderWorkers = ({ title, titleInfo, subTitle }) => { skils: "React / Vue Front end, Middle разработчик", }, { - avatar: mockWorker, + avatar: avatarMockFirst, skils: "Vue / React Front end, Senior разработчик", }, { - avatar: mockWorker, + avatar: avatarMockSecond, skils: "NodeJs Fullstack, Middle разработчик", }, { - avatar: mockWorker, + avatar: avatarMockThird, skils: "React / Vue Front end, Middle разработчик", }, { - avatar: mockWorker, + avatar: avatarMockFourth, skils: "React / PHP Fullstack, Middle разработчик", }, ]); diff --git a/src/components/SliderWorkers/sliderWorkers.scss b/src/components/SliderWorkers/sliderWorkers.scss index 9b538b3d..8bf7a978 100644 --- a/src/components/SliderWorkers/sliderWorkers.scss +++ b/src/components/SliderWorkers/sliderWorkers.scss @@ -61,10 +61,11 @@ } p { - font-size: 15px; + font-size: 17px; + font-weight: 700; line-height: 22px; color: black; - width: 160px; + width: 210px; } &__resume { diff --git a/src/pages/AuthForDevelopers/AuthForDevelopers.jsx b/src/pages/AuthForDevelopers/AuthForDevelopers.jsx index 7cb5da45..d8775259 100644 --- a/src/pages/AuthForDevelopers/AuthForDevelopers.jsx +++ b/src/pages/AuthForDevelopers/AuthForDevelopers.jsx @@ -69,7 +69,7 @@ const AuthForDevelopers = () => {
    - +
    @@ -93,7 +93,7 @@ const AuthForDevelopers = () => {
    {/* */}

    - 20 Специалистов + 300 Специалистов

    diff --git a/src/pages/ProjectTracker/ProjectTracker.js b/src/pages/ProjectTracker/ProjectTracker.js index f5fdca57..e7313046 100644 --- a/src/pages/ProjectTracker/ProjectTracker.js +++ b/src/pages/ProjectTracker/ProjectTracker.js @@ -574,7 +574,7 @@ export const ProjectTracker = () => { selectedTabTask( column.id, projectBoard?.columns && column.tasks.length - ? column.tasks.at(-1).priority + 1 + ? column.tasks[0].priority - 1 : 1 ); }}