From 981a7b121e433630d17b0ac1ae3af0d2072b64cc Mon Sep 17 00:00:00 2001 From: Kartik sharma Date: Sat, 5 Jul 2025 11:45:13 +0530 Subject: [PATCH] Project Not Visible When Created with "In Progress" Status Selected from Filter --- src/components/Project/ManageProjectInfo.jsx | 68 ++++++++++++++------ 1 file changed, 50 insertions(+), 18 deletions(-) diff --git a/src/components/Project/ManageProjectInfo.jsx b/src/components/Project/ManageProjectInfo.jsx index 4b5d6abf..cb4e1466 100644 --- a/src/components/Project/ManageProjectInfo.jsx +++ b/src/components/Project/ManageProjectInfo.jsx @@ -4,6 +4,18 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; // const currentDate = new Date().toISOString().split("T")[0]; + +const ACTIVE_STATUS_ID = "b74da4c2-d07e-46f2-9919-e75e49b12731"; + +const DEFAULT_EMPTY_STATUS_ID = "00000000-0000-0000-0000-000000000000"; +/** + + * Formats a given date string into 'YYYY-MM-DD' format. + * If the date is invalid or not provided, it defaults to the current date. + * @param {string} date - The date string to format. + * @returns {string} The formatted date string. + */ + const currentDate = new Date().toLocaleDateString('en-CA'); const formatDate = (date) => { if (!date) { @@ -29,7 +41,7 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { shortName: z.string().optional(), contactPerson: z .string() - .min( 1, {message: "Contact Person Name is required"} ) + .min(1, { message: "Contact Person Name is required" }) .regex(/^[A-Za-z\s]+$/, { message: "Contact Person must contain only letters", }), @@ -53,7 +65,7 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { (data) => { const start = new Date(data.startDate); const end = new Date(data.endDate); - return end > start; + return end >= start; }, { path: ["endDate"], // attaches the error to the endDate field @@ -78,7 +90,12 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { projectAddress: project?.projectAddress || "", startDate: formatDate(project?.startDate) || currentDate, endDate: formatDate(project?.endDate) || currentDate, - projectStatusId: String(project?.projectStatusId || "00000000-0000-0000-0000-000000000000"), + // projectStatusId: String(project?.projectStatusId || "00000000-0000-0000-0000-000000000000"), + projectStatusId: project?.projectStatusId && project.projectStatusId !== DEFAULT_EMPTY_STATUS_ID + + ? String(project.projectStatusId) + + : ACTIVE_STATUS_ID, }, mode: "onChange", }); @@ -88,24 +105,35 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { reset( project ? { - id: project?.id || "", - name: project?.name || "", - shortName: project?.shortName || "", - contactPerson: project?.contactPerson || "", - projectAddress: project?.projectAddress || "", - startDate: formatDate(project?.startDate) || "", - endDate: formatDate(project?.endDate) || "", - projectStatusId: String(project.projectStatusId) || "00000000-0000-0000-0000-000000000000", - } + id: project?.id || "", + name: project?.name || "", + shortName: project?.shortName || "", + contactPerson: project?.contactPerson || "", + projectAddress: project?.projectAddress || "", + startDate: formatDate(project?.startDate) || "", + endDate: formatDate(project?.endDate) || "", + // projectStatusId: String(project.projectStatusId) || "00000000-0000-0000-0000-000000000000", + projectStatusId: project?.projectStatusId && project.projectStatusId !== DEFAULT_EMPTY_STATUS_ID + ? String(project.projectStatusId) + : ACTIVE_STATUS_ID, + } : {} ); setAddressLength(project?.projectAddress?.length || 0); }, [project, reset]); + /** + + * Handles the form submission. + + * @param {object} updatedProject - The project data from the form. + + */ + const onSubmitForm = (updatedProject) => { setLoading(true); - handleSubmitForm( updatedProject, setLoading,reset ); - }; + handleSubmitForm(updatedProject, setLoading, reset); + }; const handleCancel = () => { reset({ @@ -116,7 +144,10 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { projectAddress: project?.projectAddress || "", startDate: formatDate(project?.startDate) || currentDate, endDate: formatDate(project?.endDate) || currentDate, - projectStatusId: String(project?.projectStatusId || "00000000-0000-0000-0000-000000000000"), + // projectStatusId: String(project?.projectStatusId || "00000000-0000-0000-0000-000000000000"), + projectStatusId: project?.projectStatusId && project.projectStatusId !== DEFAULT_EMPTY_STATUS_ID + ? String(project.projectStatusId) + : ACTIVE_STATUS_ID, }); onClose(); }; @@ -259,8 +290,9 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { valueAsNumber: false, })} > - - + {/* + */} + @@ -326,4 +358,4 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => { ); }; -export default ManageProjectInfo; +export default ManageProjectInfo; \ No newline at end of file