add ModalTicketToReport and add OpenRequest, fix

LandingTracker, fix url ModalTicket
This commit is contained in:
2024-07-04 16:54:34 +03:00
parent b396201cdf
commit a367f8b09c
14 changed files with 1499 additions and 1155 deletions

View File

@ -5,7 +5,7 @@ import React, { useEffect, useState } from "react";
import DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { useDispatch, useSelector } from "react-redux";
import { Link } from "react-router-dom";
import { Link, useLocation } from "react-router-dom";
import { getProfileInfo } from "@redux/outstaffingSlice";
import { setProjectBoardFetch } from "@redux/projectsTrackerSlice";
@ -44,6 +44,7 @@ import watch from "assets/icons/watch.svg";
import avatarMok from "assets/images/avatarMok.webp";
import { getCorrectDate } from "../../../../utils/calendarHelper";
import ModalTicketToReport from "../ModalTicketToReport/ModalTicketToReport";
import "./modalTicket.scss";
registerLocale("ru", ru);
@ -59,6 +60,8 @@ export const ModalTiсket = ({
projectMarks
}) => {
const dispatch = useDispatch();
const location = useLocation();
const [addSubtask, setAddSubtask] = useState(false);
const [editOpen, setEditOpen] = useState(false);
const [inputsValue, setInputsValue] = useState({
@ -87,6 +90,12 @@ export const ModalTiсket = ({
minute: 0,
seconds: 0
});
const additionalData = {
id: task.id,
title: inputsValue.title,
link: null,
nameProject: projectName
};
const [timerId, setTimerId] = useState(null);
const [taskFiles, setTaskFiles] = useState([]);
const [correctProjectUsers, setCorrectProjectUsers] = useState(projectUsers);
@ -98,9 +107,21 @@ export const ModalTiсket = ({
const [selectPriorityOpen, setSelectPriorityOpen] = useState(false);
const { showNotification } = useNotification();
const [commentSendDisable, setCommentSendDisable] = useState(false);
const [showModalToReport, setShowModalToReport] = useState(false);
const openModalToReport = () => {
setShowModalToReport(!showModalToReport);
};
const closeModalToReport = () => {
setShowModalToReport(!showModalToReport);
};
const closeModal = () => {
setActive(false);
const currentUrl = window.location.pathname;
const newUrl = currentUrl.replace(/\/task\/\d+$/, "");
window.history.replaceState({}, "", newUrl);
// Восстанавливаем скролл при закрытии модального окна
document.body.style.overflow = "auto";
};
@ -1072,7 +1093,7 @@ export const ModalTiсket = ({
</div>
<div className="workers_box-bottom">
<div
className={editOpen ? "edit" : ""}
className={`bottom-button ${editOpen ? "edit" : ""}`}
onClick={() => {
if (editOpen) {
editTask();
@ -1084,30 +1105,39 @@ export const ModalTiсket = ({
<img src={edit}></img>
<p>{editOpen ? "сохранить" : "редактировать"}</p>
</div>
<div>
<div className="bottom-button">
<img src={link}></img>
<p onClick={copyTicketLink}>ссылка на задачу</p>
</div>
<div className="bottom-button">
<img src={link}></img>
<p onClick={openModalToReport}>выгрузка в отчет</p>
<ModalTicketToReport
show={showModalToReport}
onClose={closeModalToReport}
additionalData={additionalData}
></ModalTicketToReport>
</div>
<div
onClick={archiveTask}
className={
className={`bottom-button ${
profileInfo.id_user === projectOwnerId ||
profileInfo.id_user === task.user_id
? ""
: "disable"
}
}`}
>
<img src={archive}></img>
<p>в архив</p>
</div>
<div
onClick={deleteTask}
className={
className={`bottom-button ${
profileInfo.id_user === projectOwnerId ||
profileInfo.id_user === task.user_id
? ""
: "disable"
}
}`}
>
<img src={del}></img>
<p>удалить</p>