From bb37fd704492f21b85a510b2b051831cda1c6097 Mon Sep 17 00:00:00 2001 From: "pramod.mahajan" Date: Mon, 24 Nov 2025 16:37:18 +0530 Subject: [PATCH] set align for Service Project List card --- .../ServiceProjectTeam/ServiceProjectList.jsx | 363 +++++++++--------- .../ServiceProject/ServiceProjectDisplay.jsx | 10 +- src/pages/project/ProjectPage.jsx | 62 +-- 3 files changed, 232 insertions(+), 203 deletions(-) diff --git a/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectList.jsx b/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectList.jsx index afc48bad..b86d4939 100644 --- a/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectList.jsx +++ b/src/components/ServiceProject/ServiceProjectTeam/ServiceProjectList.jsx @@ -3,7 +3,10 @@ import { MANAGE_PROJECT, PROJECT_STATUS } from "../../../utils/constants"; import { useProjects } from "../../../hooks/useProjects"; import { formatNumber, formatUTCToLocalTime } from "../../../utils/dateUtils"; import ProgressBar from "../../common/ProgressBar"; -import { getProjectStatusColor, getProjectStatusName } from "../../../utils/projectStatus"; +import { + getProjectStatusColor, + getProjectStatusName, +} from "../../../utils/projectStatus"; import { useDispatch } from "react-redux"; import { setProjectId } from "../../../slices/localVariablesSlice"; import { useNavigate } from "react-router-dom"; @@ -12,185 +15,195 @@ import { useProjectContext } from "../../../pages/project/ProjectPage"; import usePagination from "../../../hooks/usePagination"; import Pagination from "../../common/Pagination"; -const ServiceProjectList = ({ data, currentPage, totalPages, paginate, isCore = true }) => { - const dispatch = useDispatch(); - const navigate = useNavigate(); - const { setMangeProject, setManageServiceProject } = useProjectContext(); - const handleClose = () => setShowModal(false); +const ServiceProjectList = ({ + data, + currentPage, + totalPages, + paginate, + isCore = true, +}) => { + const dispatch = useDispatch(); + const navigate = useNavigate(); + const { setMangeProject, setManageServiceProject } = useProjectContext(); + const handleClose = () => setShowModal(false); - // check Permissions - const canManageProject = useHasUserPermission(MANAGE_PROJECT); + // check Permissions + const canManageProject = useHasUserPermission(MANAGE_PROJECT); - const projectColumns = [ - { - key: "projectName", - label: "Project Name", - className: "text-start py-3", - getValue: (p) => ( -
{ - dispatch(setProjectId(p.id)); - navigate(`/service-projects/${p.id}`); - }} - > - {p.shortName ? `${p.name} (${p.shortName})` : p.name} -
- ), - }, - { - key: "client.contactPerson", - label: "Contact Person", - className: "text-start small", - getValue: (p) => p.client?.contactPerson || "N/A", - }, - { - key: "assignedDate", - label: "Assign Date", - className: "text-center small", - getValue: (p) => formatUTCToLocalTime(p.assignedDate), - }, - { - key: "status", - label: "Status", - className: "text-center small", - getValue: (p) => ( - - {p.status?.status} - - ), - }, - ]; - - const handleViewProject = (p) => { - if (isCore) { + const projectColumns = [ + { + key: "projectName", + label: "Project Name", + className: "text-start py-3", + getValue: (p) => ( +
{ dispatch(setProjectId(p.id)); - navigate(`/projects/details`); - } else { navigate(`/service-projects/${p.id}`); - } - }; - - const handleManage = (p) => { - if (isCore) { - setMangeProject({ - isOpen: true, - Project: p.id, - }); - } else { - setManageServiceProject({ - isOpen: true, - project: p.id, - }); - } - }; - - - return ( -
-
- - - - {projectColumns.map((col) => ( - - ))} - - - - - {data?.length > 0 ? ( - data.map((project) => ( - - {projectColumns.map((col) => ( - - ))} - - - )) - ) : ( - - - - )} - - -
- {col.label} - Action
- {col.getValue ? col.getValue(project) : project[col.key] || "N/A"} - - -
- No Service projects available -
-
- - + }} + > + {p.shortName ? `${p.name} (${p.shortName})` : p.name}
- ); + ), + }, + { + key: "client.contactPerson", + label: "Contact Person", + className: "text-start small", + getValue: (p) => p.client?.contactPerson || "N/A", + }, + { + key: "assignedDate", + label: "Assign Date", + className: "text-center small", + getValue: (p) => formatUTCToLocalTime(p.assignedDate), + }, + { + key: "status", + label: "Status", + className: "text-center small", + getValue: (p) => ( + + {p.status?.status} + + ), + }, + ]; + + const handleViewProject = (p) => { + if (isCore) { + dispatch(setProjectId(p.id)); + navigate(`/projects/details`); + } else { + navigate(`/service-projects/${p.id}`); + } + }; + + const handleManage = (p) => { + if (isCore) { + setMangeProject({ + isOpen: true, + Project: p.id, + }); + } else { + setManageServiceProject({ + isOpen: true, + project: p.id, + }); + } + }; + + return ( +
+
+
+ + + + {projectColumns.map((col) => ( + + ))} + + + + + {data?.length > 0 ? ( + data.map((project) => ( + + {projectColumns.map((col) => ( + + ))} + + + )) + ) : ( + + + + )} + +
+ {col.label} + Action
+ {col.getValue + ? col.getValue(project) + : project[col.key] || "N/A"} + + +
+ No Service projects available +
+
+ + +
+
+ ); }; export default ServiceProjectList; diff --git a/src/pages/ServiceProject/ServiceProjectDisplay.jsx b/src/pages/ServiceProject/ServiceProjectDisplay.jsx index 71750599..6bb9299d 100644 --- a/src/pages/ServiceProject/ServiceProjectDisplay.jsx +++ b/src/pages/ServiceProject/ServiceProjectDisplay.jsx @@ -51,19 +51,20 @@ const ServiceProjectDisplay = ({ listView, selectedStatuses, searchTerm }) => {
); return ( -
+
+
{listView ? ( - ) : ( + ) : filteredProjects?.length > 0 ? ( filteredProjects?.map((project) => ( )) - - )} + + ):(

No Service projects available

)}
{ )}
+
); }; diff --git a/src/pages/project/ProjectPage.jsx b/src/pages/project/ProjectPage.jsx index 1689fbb0..f72b995c 100644 --- a/src/pages/project/ProjectPage.jsx +++ b/src/pages/project/ProjectPage.jsx @@ -41,13 +41,12 @@ const ProjectPage = () => { const [listView, setListView] = useState(false); const [searchTerm, setSearchTerm] = useState(""); const [coreProjects, setCoreProjects] = useState(() => { - const storedValue = sessionStorage.getItem('whichProjectDisplay'); - return storedValue === 'true'; + const storedValue = sessionStorage.getItem("whichProjectDisplay"); + return storedValue === "true"; }); const HasManageProject = useHasUserPermission(MANAGE_PROJECT); const [currentPage, setCurrentPage] = useState(1); - const [selectedStatuses, setSelectedStatuses] = useState( PROJECT_STATUS.map((s) => s.id) ); @@ -66,13 +65,11 @@ const ProjectPage = () => { manageServiceProject, }; - const handleToggleProject = (value) => { setCoreProjects(value); sessionStorage.setItem("whichProjectDisplay", String(value)); }; - return (
@@ -92,8 +89,9 @@ const ProjectPage = () => { {/* Service Project Button */} -
- {/* RIGHT SIDE — SEARCH + CARD/LIST + DROPDOWN */}
- {/* Search */}
{
- {coreProjects ? : } + {coreProjects ? ( + + ) : ( + + )}
);