From 550b142d74242760b9f7c5323c3599fccbc4afe7 Mon Sep 17 00:00:00 2001
From: "pramod.mahajan"
Date: Mon, 29 Sep 2025 15:03:52 +0530
Subject: [PATCH] fixed run time date error
---
src/components/Project/ProjectCard.jsx | 46 +++++++++++++-------------
src/utils/dateUtils.jsx | 24 +++++++++-----
2 files changed, 39 insertions(+), 31 deletions(-)
diff --git a/src/components/Project/ProjectCard.jsx b/src/components/Project/ProjectCard.jsx
index ca5d88de..815b84c5 100644
--- a/src/components/Project/ProjectCard.jsx
+++ b/src/components/Project/ProjectCard.jsx
@@ -41,7 +41,7 @@ const ProjectCard = ({ project }) => {
dispatch(setProjectId(project.id));
navigate(`/activities/records?project=${project.id}`);
};
-
+console.log(project)
return (
<>
@@ -63,7 +63,7 @@ const ProjectCard = ({ project }) => {
{project?.shortName ? project?.shortName : project?.name}
- {project.shortName ? project.name : ""}
+ {project?.shortName ? project?.name : ""}
@@ -125,22 +125,22 @@ const ProjectCard = ({ project }) => {
Contact Person:{" "}
- {project.contactPerson ? project.contactPerson : "NA"}
+ {project?.contactPerson ? project.contactPerson : "NA"}
Start Date:
{project.startDate
- ? moment(project.startDate).format("DD-MMM-YYYY")
+ ? moment(project?.startDate).format("DD-MMM-YYYY")
: "NA"}
Deadline:
- {project.endDate
- ? moment(project.endDate).format("DD-MMM-YYYY")
+ {project?.endDate
+ ? moment(project?.endDate).format("DD-MMM-YYYY")
: "NA"}
- {project.projectAddress}
+ {project?.projectAddress}
@@ -150,37 +150,37 @@ const ProjectCard = ({ project }) => {
- {getProjectStatusName(project.projectStatusId)}
+ {getProjectStatusName(project?.projectStatusId)}
{" "}
- {getDateDifferenceInDays(project.endDate, Date()) >= 0 && (
+ {getDateDifferenceInDays(project?.endDate,new Date() ) >= 0 && (
- {project.endDate &&
- getDateDifferenceInDays(project.endDate, Date())}{" "}
+ {project?.endDate &&
+ getDateDifferenceInDays(project?.endDate, new Date())}{" "}
Days left
)}
- {getDateDifferenceInDays(project.endDate, Date()) < 0 && (
+ {getDateDifferenceInDays(project?.endDate, new Date()) < 0 && (
- {project.endDate &&
- getDateDifferenceInDays(project.endDate, Date())}{" "}
+ {project?.endDate &&
+ getDateDifferenceInDays(project?.endDate, new Date())}{" "}
Days overdue
)}
- Task: {formatNumber(project.completedWork)} /{" "}
- {formatNumber(project.plannedWork)}
+ Task: {formatNumber(project?.completedWork)} /{" "}
+ {formatNumber(project?.plannedWork)}
{Math.floor(
getProgressInNumber(
- project.plannedWork,
- project.completedWork
+ project?.plannedWork,
+ project?.completedWork
)
) || 0}{" "}
% Completed
@@ -192,13 +192,13 @@ const ProjectCard = ({ project }) => {
role="progressbar"
style={{
width: getProgress(
- project.plannedWork,
- project.completedWork
+ project?.plannedWork,
+ project?.completedWork
),
}}
- aria-valuenow={project.completedWork}
+ aria-valuenow={project?.completedWork}
aria-valuemin="0"
- aria-valuemax={project.plannedWork}
+ aria-valuemax={project?.plannedWork}
>
diff --git a/src/utils/dateUtils.jsx b/src/utils/dateUtils.jsx
index f32ce652..388f7563 100644
--- a/src/utils/dateUtils.jsx
+++ b/src/utils/dateUtils.jsx
@@ -3,25 +3,33 @@ import { ActiveTenant } from "./constants";
export const getDateDifferenceInDays = (startDate, endDate) => {
if (!startDate || !endDate) {
- throw new Error("Both startDate and endDate must be provided");
+ return null;
}
- // Ensure the dates are valid
const start = new Date(startDate);
const end = new Date(endDate);
if (isNaN(start) || isNaN(end)) {
- throw new Error("Invalid date format");
+ return null;
}
- // Calculate the difference in milliseconds
- const differenceInMs = start - end;
+ const startAtMidnight = new Date(
+ start.getFullYear(),
+ start.getMonth(),
+ start.getDate()
+ );
- // Convert milliseconds to days
- const differenceInDays = Math.floor(differenceInMs / (1000 * 60 * 60 * 24));
- return differenceInDays;
+ const endAtMidnight = new Date(
+ end.getFullYear(),
+ end.getMonth(),
+ end.getDate()
+ );
+
+ return Math.floor((startAtMidnight - endAtMidnight) / (1000 * 60 * 60 * 24));
};
+
+
export const formatDate = (date) => {
if (!date) return ""; // Return an empty string if no date
const dateObj = new Date(date);