import React, { useEffect, useState } from "react"; import moment from "moment"; import { formatNumber, formatUTCToLocalTime, getDateDifferenceInDays } from "../../../utils/dateUtils"; import { useNavigate } from "react-router-dom"; import ManageProjectInfo from "../../Project/ManageProjectInfo"; import ProjectRepository from "../../../repositories/ProjectRepository"; import { cacheData, getCachedData } from "../../../slices/apiDataManager"; import showToast from "../../../services/toastService"; import { useHasUserPermission } from "../../../hooks/useHasUserPermission"; import { MANAGE_PROJECT } from "../../../utils/constants"; import GlobalModel from "../../common/GlobalModel"; import { useDispatch } from "react-redux"; import { setProjectId } from "../../../slices/localVariablesSlice"; import { useProjectContext } from "../../../pages/project/ProjectPage"; import { useActiveInActiveServiceProject } from "../../../hooks/useServiceProject"; import ConfirmModal from "../../common/ConfirmModal"; import { getProjectStatusColor, getProjectStatusName } from "../../../utils/projectStatus"; const ServiceProjectCard = ({ project, isCore = true }) => { const [deleteProject, setDeleteProject] = useState({ project: null, isOpen: false, }); const dispatch = useDispatch(); const navigate = useNavigate(); const ManageProject = useHasUserPermission(MANAGE_PROJECT); const { setMangeProject, setManageServiceProject } = useProjectContext(); const handleClose = () => setShowModal(false); const handleViewProject = () => { if (isCore) { dispatch(setProjectId(project.id)); navigate(`/projects/details`); } else { navigate(`/service-projects/${project.id}`); } }; const handleManage = () => { if (isCore) { setMangeProject({ isOpen: true, Project: project.id, }); } else { setManageServiceProject({ isOpen: true, project: project.id, }); } }; const { mutate: DeleteProject, isPending } = useActiveInActiveServiceProject( () => setDeleteProject({ project: null, isOpen: false }) ); const handleActiveInactive = (projectId) => { DeleteProject(projectId, false); }; return ( <> setDeleteProject({ project: null, isOpen: false })} loading={isPending} paramData={project.id} isOpen={deleteProject.isOpen} />
{project?.shortName ? project?.shortName : project?.name}
{project?.shortName ? project?.name : ""}
{/* Card View */}

{getProjectStatusName(project?.status?.id)}

Contact Person: {project?.contactName}

Assigned Date: {formatUTCToLocalTime(project?.assignedDate)}

Address: {project?.address}

{project?.projectAddress}

{project?.teamMemberCount} Employees

{/* Heading */}
Jobs
{/* Job details */}

{project?.assignedJobsCount} Assigned Jobs

{project?.activeJobsCount} Active Jobs

{project?.jobsPassedDueDateCount} Job Passes Due Date

{project?.onHoldJobsCount} On Hold Jobs

); }; export default ServiceProjectCard;