import React, { useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import Breadcrumb from "../../components/common/Breadcrumb"; import { dailyTask } from "../../data/masters"; import { useTaskList } from "../../hooks/useTasks"; import { useProjects } from "../../hooks/useProjects"; import { setProjectId } from "../../slices/localVariablesSlice"; import { useProfile } from "../../hooks/useProfile"; import { formatDate } from "../../utils/dateUtils"; import GlobalModel from "../../components/common/GlobalModel"; import AssignRoleModel from "../../components/Project/AssignRole"; import { ReportTask } from "../../components/Activities/ReportTask"; import ReportTaskComments from "../../components/Activities/ReportTaskComments"; import DateRangePicker from "../../components/common/DateRangePicker"; import DatePicker from "../../components/common/DatePicker"; import { useSearchParams } from "react-router-dom"; const DailyTask = () => { const { profile: LoggedUser } = useProfile(); const [searchParams] = useSearchParams(); const projectId = searchParams.get("project"); const selectedProject = useSelector( (store) => store.localVariables.projectId ); const { projects, loading: project_lodaing, error: projects_Error, } = useProjects(); const [initialized, setInitialized] = useState(false); // Sync projectId (either from URL or pick first accessible one) useEffect(() => { if (!project_lodaing && projects.length > 0 && !initialized) { const userProjects = projects.filter((p) => LoggedUser?.projects?.map(Number).includes(p.id) ); if (projectId) { dispatch(setProjectId(projectId)); } else if (!selectedProject && userProjects.length > 0) { dispatch(setProjectId(userProjects[0].id)); } setInitialized(true); // <-- This blocks re-running this effect again } }, [project_lodaing, projects, projectId, selectedProject, initialized]); const dispatch = useDispatch(selectedProject); const [dateRange, setDateRange] = useState({ startDate: "", endDate: "" }); const { TaskList, loading: task_loading, error: task_error, refetch, } = useTaskList( initialized ? selectedProject : null, initialized ? dateRange.startDate : null, initialized ? dateRange.endDate : null); const [TaskLists, setTaskLists] = useState([]); useEffect(() => { setTaskLists(TaskList); }, [TaskList,selectedProject]); const [selectedTask, selectTask] = useState(null); const [comments, setComment] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const [isModalOpenComment, setIsModalOpenComment] = useState(false); const openModal = () => setIsModalOpen(true); const closeModal = () => setIsModalOpen(false); const openComment = () => setIsModalOpenComment(true); const closeCommentModal = () => setIsModalOpenComment(false); const handletask = (task) => { selectTask(task); openModal(); }; return ( <>
{TaskLists?.length === 0 && !task_loading && ( )} {task_loading && ( )} {(!initialized || !selectedProject) && ( )} {TaskLists.map((task, index) => { const accordionId = `accordion-${index}`; return ( {/* Main Row */} {/* Accordion Content */} ); })}
Activity Planned Compeleted Assign On Team Actions
No Data Found

Loading..

Loading..

{task.workItem.activityMaster.activityName || "No Activity Name"} {task.plannedTask || "NA"} {task.completedTask} {formatDate(task.assignmentDate)}
{task.teamMembers.slice(0, 3).map((member) => (
{/* Avatar */} {member?.firstName.slice(0, 1)}
))} {task.teamMembers.length > 3 && (
+{task.teamMembers.length - 3}
)}

{task.subdata?.name}

); }; export default DailyTask;