import React, { useEffect, useState } from "react"; import { useDispatch } from "react-redux"; import { Link } from "react-router-dom"; import { deleteProject, modalToggle } from "@redux/projectsTrackerSlice"; import {useNotification} from "@hooks/useNotification"; import { apiRequest } from "@api/request"; import { ModalSelect } from "@components/Modal/ModalSelect/ModalSelect"; import TrackerModal from "@components/Modal/Tracker/TrackerModal/TrackerModal"; import AcceptModal from "@components/Modal/AcceptModal/AcceptModal" import archiveSet from "assets/icons/archive.svg"; import del from "assets/icons/delete.svg"; import edit from "assets/icons/edit.svg"; import link from "assets/icons/link.svg"; import "./projectTiket.scss"; export const ProjectTiket = ({ project, index }) => { const [modalSelect, setModalSelect] = useState(false); const [modalAdd, setModalAdd] = useState(false); const [acceptModalOpen, setAcceptModalOpen] = useState(false); const dispatch = useDispatch(); const { showNotification } = useNotification() useEffect(() => { initListeners(); }, []); function initListeners() { document.addEventListener("click", closeByClickingOut); } function closeByClickingOut(event) { const path = event.path || (event.composedPath && event.composedPath()); if ( event && !path.find((item) => item.classList && item.classList.contains("project")) ) { setModalSelect(false); } } function removeProject() { apiRequest("/project/update", { method: "PUT", data: { project_id: project.id, status: 10, }, }).then(() => { dispatch(deleteProject(project)); showNotification({show: true, text: 'Проект успешно была перемещена в архив', type: 'archive'}); }); } function copyProjectLink() { navigator.clipboard.writeText( `https://itguild.info/tracker/project/${project.id}` ); } function closeAcceptModal () { setAcceptModalOpen(false) } return (
Открытые задачи
{project.columns.reduce( (accumulator, currentValue) => accumulator + currentValue.tasks.length, 0 )} setModalSelect(true)}> ...редактировать
ссылка на проект
в архив
удалить