import React, { useState } from "react"; import { ProfileHeader } from "../../components/ProfileHeader/ProfileHeader"; import {ProfileBreadcrumbs} from "../../components/ProfileBreadcrumbs/ProfileBreadcrumbs"; import { Footer } from "../../components/Footer/Footer"; import ModalTiket from "../../components/UI/ModalTiket/ModalTiket"; import ModalProject from "../../components/UI/ModalProject/ModalProject"; import project from "../../images/trackerProject.svg"; import tasks from "../../images/trackerTasks.svg"; import archive from "../../images/archiveTracker.svg"; 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 "./tracker.scss"; export const Tracker = () => { const [toggleTab, setToggleTab] = useState(1); const [projects] = useState([ { name: "Разработка трекера", count: 4, }, { name: "Кинотеатр", count: 4, }, { name: "Проект страхование", count: 4, }, ]); const [tabTaskMok, setTabTaskMok] = useState([ { name: "Открытые", open: false, tasks: [ { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 1 }, { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 2 }, ], }, { name: "В процессе", open: false, tasks: [ { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 3 }, ], }, { name: "На проверке", open: false, tasks: [ { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 4 }, { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 5 }, { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 6 }, { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 9 }, ], }, { name: "Готово", open: false, tasks: [ { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 7 }, { task: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", comments: 12, files: 0, avatarCreated: avatarTest, avatarDo: avatarTest, id: 8 }, ], }, ]); const [completeTasks] = useState([ { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PK - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PE - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PA - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PB - 2245", description: "Верстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PC - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PD - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, { name: "PA - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: '07/мар/23', avatarDo: avatarTest, }, ]) 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 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 dragStartHandler(e, task, wrapperIndex) { setStartWrapperIndex({task: task, index: wrapperIndex}) setTimeout(() => { 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') } function dragOverHandler(e) { e.preventDefault() } function dragEnterHandler(wrapperIndex) { if (wrapperIndex === startWrapperIndex.index) { return } setWrapperHover(prevArray => prevArray.map((elem, index) => { if (index === wrapperIndex) { return true } else { return false } })) } function dragDropHandler(e, wrapperIndex) { e.preventDefault() if (startWrapperIndex.index === wrapperIndex) { 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 } })) } 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 } })) } return (
Проекты
Задачи
Архив
Открытые задачи
{project.count} +{task.task}
...{task.description}
{filterCompleteTasks.length} задач(а)
{task.description}
{task.dateComplete}
{task.name}