diff --git a/src/components/UI/ModalTiket/ModalTiket.scss b/src/components/UI/ModalTiket/ModalTiket.scss
index a2c74a53..36aaf5c8 100644
--- a/src/components/UI/ModalTiket/ModalTiket.scss
+++ b/src/components/UI/ModalTiket/ModalTiket.scss
@@ -23,20 +23,6 @@
display: flex;
flex-direction: row;
- .author {
- padding: 25px 0 0 0;
- border-radius: 8px 0 0 8px;
- display: flex;
- flex-direction: column;
- align-items: center;
- width: 76px;
- background: #fbfbfb;
-
- a {
- margin-bottom: 16px;
- }
- }
-
.content {
display: flex;
flex-direction: column;
@@ -109,10 +95,34 @@
}
.workers {
+ position: relative;
border-left: 1px solid #f1f1f1;
width: 300px;
padding: 40px;
+ .exit {
+ cursor: pointer;
+ position: absolute;
+ top: 22px;
+ right: 31px;
+
+ &:before,
+ &:after {
+ content: "";
+ position: absolute;
+ width: 16px;
+ height: 2px;
+ background: #263238;
+ }
+
+ &:before {
+ transform: rotate(45deg);
+ }
+ &:after {
+ transform: rotate(-45deg);
+ }
+ }
+
span {
font-family: "Inter", sans-serif;
font-weight: 500;
@@ -149,6 +159,7 @@
}
.start {
+ font-size: 12px;
margin-top: 25px;
width: 151px;
height: 40px;
diff --git a/src/images/ArrovLeftSlider.png b/src/images/ArrovLeftSlider.png
new file mode 100644
index 00000000..f1489058
Binary files /dev/null and b/src/images/ArrovLeftSlider.png differ
diff --git a/src/pages/AuthForDevelopers/AuthForDevelopers.js b/src/pages/AuthForDevelopers/AuthForDevelopers.js
index 09938d83..e3075654 100644
--- a/src/pages/AuthForDevelopers/AuthForDevelopers.js
+++ b/src/pages/AuthForDevelopers/AuthForDevelopers.js
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useEffect, useState } from "react";
import { AuthBox } from "../../components/AuthBox/AuthBox";
diff --git a/src/pages/AuthForDevelopers/authForDevelopers.scss b/src/pages/AuthForDevelopers/authForDevelopers.scss
index 5cf8aa60..25b5d894 100644
--- a/src/pages/AuthForDevelopers/authForDevelopers.scss
+++ b/src/pages/AuthForDevelopers/authForDevelopers.scss
@@ -1,4 +1,5 @@
.auth-developers {
+ font-family: "LabGrotesque", sans-serif;
overflow: hidden;
position: relative;
@@ -200,7 +201,7 @@
&__partnersForDev {
background: #52b7098c;
color: #2d6505;
- margin-left: -40px;
+ margin-left: -35px;
}
&__partnersForDev,
diff --git a/src/pages/AuthForPartners/authForPartners.scss b/src/pages/AuthForPartners/authForPartners.scss
index a34b5bf7..acee7572 100644
--- a/src/pages/AuthForPartners/authForPartners.scss
+++ b/src/pages/AuthForPartners/authForPartners.scss
@@ -1,4 +1,5 @@
.auth-partners {
+ font-family: "LabGrotesque", sans-serif;
overflow: hidden;
position: relative;
@@ -302,7 +303,7 @@
&__partnersForPart {
background: #406128;
color: white;
- margin-left: -40px;
+ margin-left: -35px;
}
&__partnersForPart,
diff --git a/src/pages/PartnerSettings/PartnerSettings.js b/src/pages/PartnerSettings/PartnerSettings.js
index db633a98..f83882cd 100644
--- a/src/pages/PartnerSettings/PartnerSettings.js
+++ b/src/pages/PartnerSettings/PartnerSettings.js
@@ -16,7 +16,7 @@ export const PartnerSettings = () => {
diff --git a/src/pages/Tracker/Tracker.js b/src/pages/Tracker/Tracker.js
index b21d6d16..175a039e 100644
--- a/src/pages/Tracker/Tracker.js
+++ b/src/pages/Tracker/Tracker.js
@@ -5,7 +5,7 @@ import {ProfileBreadcrumbs} from "../../components/ProfileBreadcrumbs/ProfileBre
import { Footer } from "../../components/Footer/Footer";
import ModalTiket from "../../components/UI/ModalTiket/ModalTiket";
-import ModalProject from "../../components/UI/ModalProject/ModalProject";
+import ModalCreate from "../../components/UI/ModalCreate/ModalCreate";
import project from "../../images/trackerProject.svg";
import tasks from "../../images/trackerTasks.svg";
@@ -14,26 +14,28 @@ import avatarTest from "../../images/AvatarTest .png";
import selectArrow from "../../images/select.svg";
import commentsBoard from "../../images/commentsBoard.svg";
import filesBoard from "../../images/filesBoard.svg";
-import search from "../../images/search.svg"
+import search from "../../images/search.svg";
import "./tracker.scss";
+import { useDispatch, useSelector } from "react-redux";
+import { getProjects } from "../../redux/projectsTrackerSlice";
export const Tracker = () => {
const [toggleTab, setToggleTab] = useState(1);
- const [projects] = useState([
- {
- name: "Разработка трекера",
- count: 4,
- },
- {
- name: "Кинотеатр",
- count: 4,
- },
- {
- name: "Проект страхование",
- count: 4,
- },
- ]);
+ // const [projects] = useState([
+ // {
+ // name: "Разработка трекера",
+ // count: 4,
+ // },
+ // {
+ // name: "Кинотеатр",
+ // count: 4,
+ // },
+ // {
+ // name: "Проект страхование",
+ // count: 4,
+ // },
+ // ]);
const [tabTaskMok, setTabTaskMok] = useState([
{
name: "Открытые",
@@ -46,7 +48,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 1
+ id: 1,
},
{
task: "PR - 2245",
@@ -55,7 +57,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 2
+ id: 2,
},
],
},
@@ -70,7 +72,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 3
+ id: 3,
},
],
},
@@ -85,7 +87,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 4
+ id: 4,
},
{
task: "PR - 2245",
@@ -94,7 +96,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 5
+ id: 5,
},
{
task: "PR - 2245",
@@ -103,7 +105,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 6
+ id: 6,
},
{
task: "PR - 2245",
@@ -112,7 +114,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 9
+ id: 9,
},
],
},
@@ -127,7 +129,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 7
+ id: 7,
},
{
task: "PR - 2245",
@@ -136,7 +138,7 @@ export const Tracker = () => {
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest,
- id: 8
+ id: 8,
},
],
},
@@ -146,184 +148,217 @@ export const Tracker = () => {
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PR - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PK - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PE - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PA - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PB - 2245",
description: "Верстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PC - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PD - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
{
name: "PA - 2245",
description: "Сверстать часть таблицы. Сверстать часть таблицы",
- dateComplete: '07/мар/23',
+ dateComplete: "07/мар/23",
avatarDo: avatarTest,
},
- ])
+ ]);
- const [filterCompleteTasks, setFilterCompleteTasks] = useState(completeTasks)
+ const [filterCompleteTasks, setFilterCompleteTasks] = useState(completeTasks);
const [modalActiveTicket, setModalActiveTicket] = useState(false);
- const [modalActiveProject, setModalActiveProject] = useState(false);
- const [startWrapperIndex, setStartWrapperIndex] = useState(null)
- const [wrapperHover, setWrapperHover] = useState([false, false, false, false])
+ const [modalCreateProject, setModalCreateProject] = useState(false);
+ const [modalCreateColl, setModalCreateColl] = useState(false);
+
+ const [startWrapperIndex, setStartWrapperIndex] = useState(null);
+ const [wrapperHover, setWrapperHover] = useState([
+ false,
+ false,
+ false,
+ false,
+ ]);
+
+ const projects = useSelector(getProjects);
+ const dispatch = useDispatch();
const toggleTabs = (index) => {
setToggleTab(index);
};
- function toggleMoreTasks (wrapperIndex) {
- setTabTaskMok(prevArray => prevArray.map((elem, index) => {
- if (wrapperIndex === index) {
- return {...elem, open: !elem.open}
- } else {
- return elem
- }
- }))
+ function toggleMoreTasks(wrapperIndex) {
+ setTabTaskMok((prevArray) =>
+ prevArray.map((elem, index) => {
+ if (wrapperIndex === index) {
+ return { ...elem, open: !elem.open };
+ } else {
+ return elem;
+ }
+ })
+ );
}
function dragStartHandler(e, task, wrapperIndex) {
- setStartWrapperIndex({task: task, index: wrapperIndex})
+ setStartWrapperIndex({ task: task, index: wrapperIndex });
setTimeout(() => {
- e.target.classList.add('tasks__board__item__hide')
- },0)
+ e.target.classList.add("tasks__board__item__hide");
+ }, 0);
}
function dragEndHandler(e) {
- setWrapperHover(prevArray => prevArray.map((elem) => {
- return false
- }))
- e.target.classList.remove('tasks__board__item__hide')
+ setWrapperHover((prevArray) =>
+ prevArray.map((elem) => {
+ return false;
+ })
+ );
+ e.target.classList.remove("tasks__board__item__hide");
}
function dragOverHandler(e) {
- e.preventDefault()
+ e.preventDefault();
}
function dragEnterHandler(wrapperIndex) {
if (wrapperIndex === startWrapperIndex.index) {
- return
+ return;
}
- setWrapperHover(prevArray => prevArray.map((elem, index) => {
- if (index === wrapperIndex) {
- return true
- } else {
- return false
- }
- }))
+ setWrapperHover((prevArray) =>
+ prevArray.map((elem, index) => {
+ if (index === wrapperIndex) {
+ return true;
+ } else {
+ return false;
+ }
+ })
+ );
}
function dragDropHandler(e, wrapperIndex) {
- e.preventDefault()
+ e.preventDefault();
if (startWrapperIndex.index === wrapperIndex) {
- return
+ return;
}
- setWrapperHover(prevArray => prevArray.map((elem) => {
- return false
- }))
- setTabTaskMok(prevArray => prevArray.map((elem, index) => {
- if (index === wrapperIndex) {
- return {...elem, tasks: [...elem.tasks, startWrapperIndex.task]}
- } else if (index === startWrapperIndex.index) {
- return {...elem, tasks: elem.tasks.filter((item) => {
- return item.id !== startWrapperIndex.task.id
- }
- )}
- } else {
- return elem
- }
- }))
+ setWrapperHover((prevArray) =>
+ prevArray.map((elem) => {
+ return false;
+ })
+ );
+ setTabTaskMok((prevArray) =>
+ prevArray.map((elem, index) => {
+ if (index === wrapperIndex) {
+ return { ...elem, tasks: [...elem.tasks, startWrapperIndex.task] };
+ } else if (index === startWrapperIndex.index) {
+ return {
+ ...elem,
+ tasks: elem.tasks.filter((item) => {
+ return item.id !== startWrapperIndex.task.id;
+ }),
+ };
+ } else {
+ return elem;
+ }
+ })
+ );
}
function filterArchiveTasks(e) {
- setFilterCompleteTasks(completeTasks.filter((item) => {
- if (!e.target.value) {
- return item
- }
- if (item.name.toLowerCase().startsWith(e.target.value.toLowerCase()) || item.description.toLowerCase().startsWith(e.target.value.toLowerCase())) {
- return item
- }
- }))
+ setFilterCompleteTasks(
+ completeTasks.filter((item) => {
+ if (!e.target.value) {
+ return item;
+ }
+ if (
+ item.name.toLowerCase().startsWith(e.target.value.toLowerCase()) ||
+ item.description
+ .toLowerCase()
+ .startsWith(e.target.value.toLowerCase())
+ ) {
+ return item;
+ }
+ })
+ );
+ }
+
+ function createProject() {
+ setModalCreateProject(true);
}
return (
@@ -381,11 +416,12 @@ export const Tracker = () => {
);
})}
-
-
@@ -397,8 +433,18 @@ export const Tracker = () => {
}
>