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