import React, { useEffect, useState } from "react"; import { Link, Navigate, useParams } from "react-router-dom"; import { Loader } from "../../components/Loader/Loader"; import { ProfileHeader } from "../../components/ProfileHeader/ProfileHeader"; import { ProfileBreadcrumbs } from "../../components/ProfileBreadcrumbs/ProfileBreadcrumbs"; import { Footer } from "../../components/Footer/Footer"; import { Navigation } from "../../components/Navigation/Navigation"; import { apiRequest } from "../../api/request"; import { getCorrectDate, getCreatedDate, hourOfNum, } from "../../components/Calendar/calendarHelper"; import arrow from "../../images/right-arrow.png"; import arrowSwitchDate from "../../images/arrowViewReport.png"; import "./viewReport.scss"; export const ViewReport = () => { if (localStorage.getItem("role_status") === "18") { return ; } const dateReport = useParams(); const [previousReportDay] = useState(new Date(dateReport.id)); const [nextReportDay] = useState(new Date(dateReport.id)); const [taskText, setTaskText] = useState([]); const [difficulties, setDifficulties] = useState([]); const [tomorrowTask, setTomorrowTask] = useState([]); const [totalHours, setTotalHours] = useState(0); const [currentDay] = useState(new Date()); const [loader, setLoader] = useState(false); function getReportFromDate(day) { setLoader(true); setTaskText([]); setDifficulties([]); setTomorrowTask([]); apiRequest( `reports/find-by-date?user_card_id=${localStorage.getItem( "cardId" )}&date=${day}` ).then((res) => { let spendTime = 0; for (const item of res) { if (item.difficulties) { setDifficulties((prevArray) => [...prevArray, item.difficulties]); } if (item.tomorrow) { setTomorrowTask((prevArray) => [...prevArray, item.tomorrow]); } item.task.map((task) => { const taskInfo = { hours: task.hours_spent, task: task.task, id: task.id, }; if (task.hours_spent) { spendTime += Number(task.hours_spent); } setTaskText((prevArray) => [...prevArray, taskInfo]); }); } setTotalHours(spendTime); setLoader(false); }); previousReportDay.setDate(previousReportDay.getDate() - 1); nextReportDay.setDate(nextReportDay.getDate() + 1); } function nextDay() { getReportFromDate(getCreatedDate(nextReportDay)); previousReportDay.setDate(previousReportDay.getDate() + 2); } function previousDay() { getReportFromDate(getCreatedDate(previousReportDay)); nextReportDay.setDate(nextReportDay.getDate() - 2); } useEffect(() => { getReportFromDate(dateReport.id); }, []); return (

Ваши отчеты - просмотр отчета за день

arrow

Вернуться

{getCorrectDate(dateReport.id)}

Вами потрачено на работу :{" "} {totalHours} {hourOfNum(totalHours)}

{ previousDay(); }} >
arrow

{getCorrectDate(dateReport.id)}

nextDay()} className={`${ getCreatedDate(currentDay) === dateReport.id ? "disable" : "" }`} >
arrow
{loader && } {Boolean(taskText.length) && (
{taskText.length && taskText.map((task, index) => { return ( ); })}

Какие задачи были выполнены?

Время

{index + 1}. {task.task}

{task.hours}

{hourOfNum(task.hours)} на задачу

Всего: {totalHours} {hourOfNum(totalHours)}
{Boolean(difficulties.length) && (

Какие сложности возникли?

{difficulties.map((item, index) => { return

{item}

; })}
)} {Boolean(tomorrowTask.length) && (

Что планируется сделать завтра?

{tomorrowTask.map((item, index) => { return

{item}

; })}
)}
)} {!Boolean(taskText.length) && !loader && (

В этот день вы не заполняли отчет

)}
); };