Merge pull request 'Project Not Visible When Created with "In Progress" Status Selected from Filter' (#230) from Kartik_Bug#641 into Issues_July_1W

Reviewed-on: #230
This commit is contained in:
Vikas Nale 2025-07-05 11:15:39 +00:00
commit eb1f048059

View File

@ -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,
})}
>
<option disabled>Status</option>
<option value="b74da4c2-d07e-46f2-9919-e75e49b12731">Active</option>
{/* <option disabled>Status</option>
<option value="b74da4c2-d07e-46f2-9919-e75e49b12731">Active</option> */}
<option value={ACTIVE_STATUS_ID}>Active</option>
<option value="603e994b-a27f-4e5d-a251-f3d69b0498ba">On Hold</option>
<option value="cdad86aa-8a56-4ff4-b633-9c629057dfef">In Progress</option>
@ -326,4 +358,4 @@ const ManageProjectInfo = ({ project, handleSubmitForm, onClose }) => {
);
};
export default ManageProjectInfo;
export default ManageProjectInfo;