import React, { useState } from "react"; import { getNextBadgeColor } from "../../utils/appUtils"; import { useServiceProjectJobs } from "../../hooks/useServiceProject"; import { ITEMS_PER_PAGE } from "../../utils/constants"; import EmployeeAvatarGroup from "../common/EmployeeAvatarGroup"; import { formatUTCToLocalTime } from "../../utils/dateUtils"; import { SpinnerLoader } from "../common/Loader"; import { useParams } from "react-router-dom"; import ProjectPage from "../../pages/project/ProjectPage"; import { useServiceProjectJobContext } from "./Jobs"; const JobList = ({ filterByProject }) => { const {setSelectedJob} = useServiceProjectJobContext() const { id } = useParams(); const { data, isLoading, isError, error } = useServiceProjectJobs( ITEMS_PER_PAGE, 1, true, filterByProject ?? id ); const jobGrid = [ { key: "title", label: "Title", getValue: (e) => ( {e?.title} ), isAlwaysVisible: true, className: "text-start", }, { key: "project", label: "Project", getValue: (e) =>
{e?.project?.name}
, isAlwaysVisible: true, className: "text-start d-none d-sm-table-cell", }, { key: "employee", label: "Team", getValue: (e) => , isAlwaysVisible: true, className: "text-start d-none d-sm-table-cell", }, { key: "startDate", label: "Start Date", getValue: (e) => formatUTCToLocalTime(e.startDate), isAlwaysVisible: true, className: "text-center d-none d-sm-table-cell ", }, { key: "dueDate", label: "Due To", getValue: (e) => formatUTCToLocalTime(e.startDate), isAlwaysVisible: true, className: "text-center d-none d-sm-table-cell", }, ]; return (
{jobGrid.map((col) => ( ))} {Array.isArray(data?.data) && data.data.length > 0 ? ( data.data.map((row, i) => ( {jobGrid.map((col) => ( ))} )) ) : ( )}
{col.label}
Actions
{col.getValue(row)}
{/* View always visible */} <>
{isLoading ? : "Not Found Jobs."}
); }; export default JobList;