import React, { useEffect, useState } from "react"; import { useDispatch } from "react-redux"; import { movePositionProjectTask } from "@redux/projectsTrackerSlice"; import { getCorrectDate } from "@utils/calendarHelper"; import { removeLast, urlForLocal } from "@utils/helper"; import TrackerSelectColumn from "@components/TrackerSelectColumn/TrackerSelectColumn"; import commentsBoard from "assets/icons/commentsBoard.svg"; import filesBoard from "assets/icons/filesBoard.svg"; import avatarMok from "assets/images/avatarMok.png"; import "./trackerCardTask.scss"; const TrackerCardTask = ({ task, projectBoard, titleColor, column, openTicket, startWrapperIndexTest, setWrapperHover }) => { const dispatch = useDispatch(); const [taskHover, setTaskHover] = useState({}); const priority = { 2: "Высокий", 1: "Средний", 0: "Низкий" }; 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 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 (
{task.title}
{tag.slug}
⚡
{priority[task.execution_priority]}⌛
{getCorrectDate(task.dead_line)}