tracker tasks create modal

This commit is contained in:
Mikola 2023-09-13 17:46:56 +03:00
parent a84672f76f
commit a3ff812b8a
2 changed files with 113 additions and 102 deletions

View File

@ -18,7 +18,9 @@ export const ModalLayout = ({
> >
<div <div
className={ className={
styles ? `modal-layout__content ${styles}` : `modal-layout__content ${type}` styles
? `modal-layout__content ${styles}`
: `modal-layout__content ${type}`
} }
onClick={(e) => e.stopPropagation()} onClick={(e) => e.stopPropagation()}
> >

View File

@ -1,11 +1,10 @@
import ClassicEditor from "@ckeditor/ckeditor5-build-classic"; import ClassicEditor from "@ckeditor/ckeditor5-build-classic";
import { CKEditor } from "@ckeditor/ckeditor5-react"; import { CKEditor } from "@ckeditor/ckeditor5-react";
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import ru from "date-fns/locale/ru"; import ru from "date-fns/locale/ru";
import React, { useEffect, useState } from "react";
import DatePicker, { registerLocale } from "react-datepicker"; import DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css"; import "react-datepicker/dist/react-datepicker.css";
import {getCorrectDate} from "@components/Calendar/calendarHelper"; import { useDispatch, useSelector } from "react-redux";
import { getProfileInfo } from "@redux/outstaffingSlice"; import { getProfileInfo } from "@redux/outstaffingSlice";
import { import {
@ -29,16 +28,18 @@ import { apiRequest } from "@api/request";
import { useNotification } from "@hooks/useNotification"; import { useNotification } from "@hooks/useNotification";
import { getCorrectDate } from "@components/Calendar/calendarHelper";
import BaseButton from "@components/Common/BaseButton/BaseButton"; import BaseButton from "@components/Common/BaseButton/BaseButton";
import ModalLayout from "@components/Common/ModalLayout/ModalLayout"; import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import arrowCreateTask from "assets/icons/arrows/arrowCreateTask.svg";
import arrowRight from "assets/icons/arrows/arrowRightCreateTask.svg";
import arrowDown from "assets/icons/arrows/selectArrow.png"; import arrowDown from "assets/icons/arrows/selectArrow.png";
import calendarImg from "assets/icons/createTaskCalendar.svg";
import avatarMok from "assets/images/avatarMok.png"; import avatarMok from "assets/images/avatarMok.png";
import arrowCreateTask from "assets/icons/arrows/arrowCreateTask.svg"
import calendarImg from "assets/icons/createTaskCalendar.svg"
import arrowRight from "assets/icons/arrows/arrowRightCreateTask.svg"
import "./trackerModal.scss"; import "./trackerModal.scss";
registerLocale("ru", ru); registerLocale("ru", ru);
export const TrackerModal = ({ export const TrackerModal = ({
@ -78,8 +79,8 @@ export const TrackerModal = ({
const [selectColumnPriorityOpen, setSelectColumnPriorityOpen] = const [selectColumnPriorityOpen, setSelectColumnPriorityOpen] =
useState(false); useState(false);
const { showNotification } = useNotification(); const { showNotification } = useNotification();
const [deadLineDate, setDeadLineDate] = useState('') const [deadLineDate, setDeadLineDate] = useState("");
const [datePickerOpen, setDatePickerOpen] = useState(false) const [datePickerOpen, setDatePickerOpen] = useState(false);
const [startDate, setStartDate] = useState(new Date()); const [startDate, setStartDate] = useState(new Date());
function createTab() { function createTab() {
@ -124,7 +125,7 @@ export const TrackerModal = ({
user_id: localStorage.getItem("id"), user_id: localStorage.getItem("id"),
column_id: selectedTab, column_id: selectedTab,
priority: priorityTask, priority: priorityTask,
dead_line: deadLineDate ? getCorrectRequestDate(deadLineDate) : '' dead_line: deadLineDate ? getCorrectRequestDate(deadLineDate) : "",
}, },
}).then((res) => { }).then((res) => {
if (res.status === 500) { if (res.status === 500) {
@ -154,7 +155,7 @@ export const TrackerModal = ({
setDescriptionTicket(""); setDescriptionTicket("");
dispatch(setProjectBoardFetch(projectBoard.id)); dispatch(setProjectBoardFetch(projectBoard.id));
} }
setDeadLineDate('') setDeadLineDate("");
showNotification({ showNotification({
show: true, show: true,
text: "Задача создана", text: "Задача создана",
@ -402,15 +403,15 @@ export const TrackerModal = ({
{modalType === "createTiketProject" && ( {modalType === "createTiketProject" && (
<> <>
<div className="title-project"> <div className="title-project">
<div className='createTaskHead'> <div className="createTaskHead">
<span>Этап</span> <span>Этап</span>
<div className='createTaskHead__selectColumn'> <div className="createTaskHead__selectColumn">
<span>Backlog</span> <span>Backlog</span>
<img src={arrowCreateTask} alt='arrow' /> <img src={arrowCreateTask} alt="arrow" />
</div> </div>
</div> </div>
<div className='createTaskBody'> <div className="createTaskBody">
<div className='createTaskBody__left'> <div className="createTaskBody__left">
<h4>Введите название и описание задачи</h4> <h4>Введите название и описание задачи</h4>
<div className="input-container"> <div className="input-container">
<input <input
@ -443,18 +444,22 @@ export const TrackerModal = ({
}} }}
/> />
</div> </div>
<div className='createTaskBody__right'> <div className="createTaskBody__right">
<div className='createTaskBody__right__owner'> <div className="createTaskBody__right__owner">
<p>Создатель : {profileInfo?.fio}</p> <p>Создатель : {profileInfo?.fio}</p>
<img <img
src={ src={
profileInfo.photo ? urlForLocal(profileInfo.photo) : avatarMok profileInfo.photo
? urlForLocal(profileInfo.photo)
: avatarMok
} }
alt="avatar" alt="avatar"
/> />
</div> </div>
<div <div
onClick={() => setSelectExecutorTaskOpen(!selectExecutorTaskOpen)} onClick={() =>
setSelectExecutorTaskOpen(!selectExecutorTaskOpen)
}
className={ className={
selectExecutorTaskOpen selectExecutorTaskOpen
? "select__executor select__executor--open" ? "select__executor select__executor--open"
@ -505,11 +510,15 @@ export const TrackerModal = ({
</div> </div>
)} )}
</div> </div>
<div className='createTaskBody__right__deadLine'> <div className="createTaskBody__right__deadLine">
<img src={calendarImg} alt='calendar' /> <img src={calendarImg} alt="calendar" />
<span>Срок исполнения</span> <span>Срок исполнения</span>
<img src={arrowRight} className='arrow' alt='arrow' /> <img src={arrowRight} className="arrow" alt="arrow" />
<p onClick={() => setDatePickerOpen(!datePickerOpen)}>{deadLineDate ? getCorrectDate(deadLineDate) : "Дата не выбрана"}</p> <p onClick={() => setDatePickerOpen(!datePickerOpen)}>
{deadLineDate
? getCorrectDate(deadLineDate)
: "Дата не выбрана"}
</p>
<DatePicker <DatePicker
className="datePicker" className="datePicker"
open={datePickerOpen} open={datePickerOpen}