Pull from main page

This commit is contained in:
MaxOvs19
2023-05-18 18:40:40 +03:00
9 changed files with 319 additions and 104 deletions

View File

@ -16,7 +16,8 @@ import {
setProjectBoardFetch,
setToggleTab,
activeLoader,
setColumnTitle,
setColumnName,
setColumnId,
} from "../../redux/projectsTrackerSlice";
import ModalTicket from "../../components/UI/ModalTicket/ModalTicket";
@ -25,7 +26,6 @@ import TrackerModal from "../../components/UI/TrackerModal/TrackerModal";
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 selectArrow from "../../images/select.svg";
import commentsBoard from "../../images/commentsBoard.svg";
import filesBoard from "../../images/filesBoard.svg";
@ -39,6 +39,7 @@ export const ProjectTracker = () => {
const [openColumnSelect, setOpenColumnSelect] = useState({});
const [selectedTab, setSelectedTab] = useState(0);
const [priorityTask, setPriorityTask] = useState(0);
const [wrapperHover, setWrapperHover] = useState({});
const [modalAdd, setModalAdd] = useState(false);
const [modalActiveTicket, setModalActiveTicket] = useState(false);
@ -125,10 +126,11 @@ export const ProjectTracker = () => {
}
}
function selectedTabTask(columnId) {
function selectedTabTask(columnId, length) {
setSelectedTab(columnId);
dispatch(modalToggle("createTiketProject"));
setModalAdd(true);
setPriorityTask(length + 1)
}
function openTicket(e, task) {
@ -196,6 +198,7 @@ export const ProjectTracker = () => {
active={modalAdd}
setActive={setModalAdd}
selectedTab={selectedTab}
priorityTask={priorityTask}
/>
{loader && <Loader style="green" />}
@ -217,9 +220,9 @@ export const ProjectTracker = () => {
<p>добавить колонку</p>
</div>
<div className="tasks__head__persons">
<img src={avatarTest} alt="avatar" />
<img src={avatarTest} alt="avatar" />
<span className="countPersons">+9</span>
{/*<img src={avatarTest} alt="avatar" />*/}
{/*<img src={avatarTest} alt="avatar" />*/}
<span className="countPersons">{projectBoard.projectUsers?.length}</span>
<span
className="addPerson"
onClick={() => {
@ -246,13 +249,13 @@ export const ProjectTracker = () => {
</div>
</div>
<ModalTicket
active={modalActiveTicket}
setActive={setModalActiveTicket}
task={selectedTicket}
projectId={projectBoard.id}
projectName={projectBoard.name}
/>
{Boolean(modalActiveTicket) && <ModalTicket
active={modalActiveTicket}
setActive={setModalActiveTicket}
task={selectedTicket}
projectId={projectBoard.id}
projectName={projectBoard.name}
/>}
<div className="tasks__container">
{Boolean(projectBoard?.columns) &&
@ -270,19 +273,13 @@ export const ProjectTracker = () => {
wrapperHover[column.id] ? "tasks__board__hover" : ""
}`}
>
<TrackerModal
active={modalAdd}
setActive={setModalAdd}
selectedTab={selectedTab}
titleColumn={column.title}
/>
<div className="board__head">
{/*<span className={wrapperIndex === 3 ? "done" : ""}>*/}
<span>{column.title}</span>
<div>
<span
className="add"
onClick={() => selectedTabTask(column.id)}
onClick={() => selectedTabTask(column.id, column.tasks.length)}
>
+
</span>
@ -309,6 +306,8 @@ export const ProjectTracker = () => {
[column.id]: false,
}));
dispatch(modalToggle("editColumn"));
dispatch(setColumnName(column.title))
dispatch(setColumnId(column.id))
setModalAdd(true);
}}
>
@ -325,11 +324,11 @@ export const ProjectTracker = () => {
</div>
)}
{column.tasks.map((task, index) => {
if (index > 2) {
if (!column.open) {
return;
}
}
// if (index > 2) {
// if (!column.open) {
// return;
// }
// }
return (
<div
key={task.id}
@ -350,7 +349,7 @@ export const ProjectTracker = () => {
<div className="tasks__board__item__info">
<div className="tasks__board__item__info__more">
<img src={commentsBoard} alt="commentsImg" />
<span>{task.comments} коментариев</span>
<span>{task.comment_count} коментариев</span>
</div>
<div className="tasks__board__item__info__more">
<img src={filesBoard} alt="filesImg" />
@ -364,18 +363,18 @@ export const ProjectTracker = () => {
</div>
);
})}
{column.tasks.length > 3 && (
<span
className={
column.open
? "lessItems openItems"
: "moreItems openItems"
}
// onClick={() => toggleMoreTasks(column.id)}
>
{column.open ? "-" : "+"}
</span>
)}
{/*{column.tasks.length > 3 && (*/}
{/* <span*/}
{/* className={*/}
{/* column.open*/}
{/* ? "lessItems openItems"*/}
{/* : "moreItems openItems"*/}
{/* }*/}
{/* // onClick={() => toggleMoreTasks(column.id)}*/}
{/* >*/}
{/* {column.open ? "-" : "+"}*/}
{/* </span>*/}
{/*)}*/}
</div>
);
})}

View File

@ -39,7 +39,7 @@ export const Tracker = () => {
const [filteredAllTasks, setFilteredAllTasks] = useState([]);
const [loader, setLoader] = useState(false);
const [filterCompleteTasks, setFilterCompleteTasks] = useState([]);
// const [allCompletedTasks, setAllCompletedTasks] = useState([])
const [allCompletedTasks, setAllCompletedTasks] = useState([])
const [modalCreateProject, setModalCreateProject] = useState(false);
@ -56,13 +56,22 @@ export const Tracker = () => {
// if (project.status === 10 && project.columns.length) {
// return project
// }
// }).map((project) => { return project.columns}))
// }).map((project) => { return project.columns}).reduce((acu, curr) => {
// curr.forEach((item) => {
// acu.push(...item.tasks)
// })
// return acu
// }, []))
});
apiRequest(
`/task/get-user-tasks?user_id=${localStorage.getItem("id")}`
).then((el) => {
setAllTasks(el);
setFilteredAllTasks(el);
const allTasks = el.filter((item) => item.status !== 0)
const completedTasks = el.filter((item) => item.status === 0)
setAllTasks(allTasks);
setFilteredAllTasks(allTasks);
setAllCompletedTasks(completedTasks)
setFilterCompleteTasks(completedTasks)
});
}, []);
@ -89,21 +98,21 @@ export const Tracker = () => {
}
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;
// }
// })
// );
setFilterCompleteTasks(
allCompletedTasks.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;
}
})
);
}
return (
@ -281,19 +290,21 @@ export const Tracker = () => {
</div>
</div>
<div className="archive__tasksWrapper">
{loader && <Loader style="green" />}
{!loader && <>
{Boolean(filterCompleteTasks.length) ? (
filterCompleteTasks.map((task, index) => {
return (
<div className="archive__completeTask" key={index}>
<div className="archive__completeTask__description">
<p>{task.description}</p>
<p className="date">{task.dateComplete}</p>
<p>{task.title}</p>
<p className="date">{task.description}</p>
</div>
<div className="archive__completeTask__info">
<img src={task.avatarDo} alt="avatar" />
<img src={urlForLocal(task.user.avatar)} alt="avatar" />
<div className="archive__completeTask__info__project">
<span>Проект</span>
<p>{task.project}</p>
{/*<span>Проект</span>*/}
<p>{getCorrectDate(task.updated_at)}</p>
</div>
</div>
</div>
@ -304,6 +315,8 @@ export const Tracker = () => {
<p>В архиве задач нет</p>
</div>
)}
</>
}
</div>
</div>
<div className="archive__projects">

View File

@ -289,7 +289,7 @@
color: #252c32;
border: 1px solid #dde2e4;
background: white;
left: -25px;
left: -18px;
z-index: 2;
}
@ -298,7 +298,7 @@
color: white;
font-size: 14px;
left: -30px;
z-index: 1;
z-index: 2;
}
p {
@ -453,6 +453,8 @@
&__more {
cursor: pointer;
display: flex;
align-items: center;
span {
font-weight: 500;
font-size: 12px;