import React, {useEffect, useState} from "react"; import { ProfileHeader } from "../../components/ProfileHeader/ProfileHeader"; import { ProfileBreadcrumbs } from "../../components/ProfileBreadcrumbs/ProfileBreadcrumbs"; import { Footer } from "../../components/Footer/Footer"; import {apiRequest} from "../../api/request"; import { Navigation } from "../../components/Navigation/Navigation"; import { useDispatch, useSelector } from "react-redux"; import { setAllProjects, getProjects, setToggleTab, getToggleTab } from "../../redux/projectsTrackerSlice"; import ModalCreate from "../../components/UI/ModalCreate/ModalCreate"; import ProjectTiket from "../../components/ProjectTiket/ProjectTiket"; import { urlForLocal } from '../../helper' import { getCorrectDate} from "../../components/Calendar/calendarHelper"; 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 search from "../../images/serchIcon.png"; import noProjects from "../../images/noProjects.png"; import "./tracker.scss"; export const Tracker = () => { const dispatch = useDispatch(); const projects = useSelector(getProjects); const tab = useSelector(getToggleTab) const [allTasks, setAllTasks] = useState([]) const [filteredAllTasks, setFilteredAllTasks] = useState([]); const [archiveProjects] = useState([ { name: "Будущее России", date: "7 марта 2023 г", }, { name: "Будущее России", date: "7 марта 2023 г", } ]); const [completeTasks] = useState([ { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: "7 марта 2023 г", avatarDo: avatarTest, project: "Будущее России", }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: "7 марта 2023 г", avatarDo: avatarTest, project: "Будущее России", }, { name: "PR - 2245", description: "Сверстать часть таблицы. Сверстать часть таблицы", dateComplete: "7 марта 2023 г", avatarDo: avatarTest, project: "Будущее России", } ]); const [filterCompleteTasks, setFilterCompleteTasks] = useState(completeTasks); // Modal State const [modalCreateProject, setModalCreateProject] = useState(false); useEffect(() => { apiRequest(`/project/project-list?user_id=${localStorage.getItem('id')}&expand=columns`).then((el) => { dispatch(setAllProjects(el.projects)) }) apiRequest(`/task/get-user-tasks?user_id=${localStorage.getItem('id')}`).then((el) => { setAllTasks(el) setFilteredAllTasks(el) }) }, []) const toggleTabs = (index) => { dispatch(setToggleTab(index)) }; function filterAllTask(e) { setFilteredAllTasks( allTasks.filter((item) => { if (!e.target.value) { return item; } if ( item.title.toLowerCase().startsWith(e.target.value.toLowerCase()) || item.description .toLowerCase() .startsWith(e.target.value.toLowerCase()) ) { return item; } }) ); } 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 (

Управление проектами с трекером

toggleTabs(1)} > img

Проекты

toggleTabs(2)} > img

Все мои задачи

toggleTabs(3)} > img

Архив

{Boolean(projects.length) && projects.map((project, index) => { return ( ); })} {!Boolean(projects.length) && (
noProjectImg

Создайте свой первый проект

Ставьте задачи, следите за прогрессом, ведите учёт рабочего времени

)} {Boolean(projects.length) && (

Ставьте задачи, следите за прогрессом, ведите учёт рабочего времени

)}

Список всех задач

search filterAllTask(event)} />
{Boolean(filteredAllTasks.length) && filteredAllTasks.map((task) => { return (
{task.title}

{task.description}

avatar

{task.user.fio}

{getCorrectDate(task.created_at)}
); })}

Архив задач:

{filterCompleteTasks.length} задач(а)

search filterArchiveTasks(event)} />
{Boolean(filterCompleteTasks.length) ? ( filterCompleteTasks.map((task, index) => { return (

{task.description}

{task.dateComplete}

avatar
Проект

{task.project}

); }) ) : (

В архиве задач нет

)}

Архив проектов:

{archiveProjects.length} проект(ов)

{Boolean(archiveProjects) ? ( archiveProjects.map((project, index) => { return (

{project.name}

{project.date}

); }) ) : (

В архиве проектов нет

)}
); };