diff --git a/src/components/Organization/ManageOrganization.jsx b/src/components/Organization/ManageOrganization.jsx index 739c5e43..80a9bcff 100644 --- a/src/components/Organization/ManageOrganization.jsx +++ b/src/components/Organization/ManageOrganization.jsx @@ -1,5 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; -import React from "react"; +import React, { useMemo, useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { defaultOrganizationValues, @@ -14,7 +14,11 @@ import Label from "../common/Label"; import SelectMultiple from "../common/SelectMultiple"; import { useServices } from "../../hooks/masterHook/useMaster"; -const ManageOrganization = () => { +const ManageOrganization = ({ + projectOrganizations = ["ee"], + organizationId = null, +}) => { + const [step, setStep] = useState(1); // 1 = Service Provider, 2 = Org Details, 3 = Add New Org const orgModal = useOrganizationModal(); const { data: services, isLoading } = useServices(); @@ -34,123 +38,319 @@ const ManageOrganization = () => { () => { reset(defaultOrganizationValues); orgModal.onClose(); + setStep(1); // reset to first step } ); const onSubmit = (OrgPayload) => { CreateOrganization(OrgPayload); }; + + const RenderTitle = useMemo(() => { + if (organizationId) { + return "Update Organization"; + } + + if (step === 1) { + return projectOrganizations && projectOrganizations.length > 0 + ? "Add Organization" + : "Find Organization"; + } + + if (step === 2) { + return "Organization Details"; + } + + if (step === 3) { + return "Create Organization"; + } + + return "Manage Organization"; // fallback + }, [step, orgModal?.orgData, organizationId]); + const contentBody = ( - -
-
- - - {errors.name && ( - {errors.name.message} - )} -
+
+ {/* ---------- STEP 1: Service Provider- Form Own Tenant list ---------- */} + {step === 1 && ( +
+
+ + +
-
- - - {errors.contactPerson && ( - {errors.contactPerson.message} - )} -
+
+ {orgModal.orgData && (

Don't have Service provder id, Select Service Provider orgModal.orgData ? setStep(2):setStep(3)}>Choose Provider

+)} +
-
- - - {errors.contactNumber && ( - {errors.contactNumber.message} - )} -
+ {/* ======== org list ======*/} + {/*
+
setStep(2)} + > + + Sample Organization 1 +
+
*/} -
- - - {errors.email && ( - {errors.email.message} - )} +
+ +
+ )} -
- - {errors.serviceIds && ( - {errors.serviceIds.message} - )} -
+ {/* ---------- STEP 1: Service Provider From Own Other Tenant ---------- */} + {step === 2 && ( +
+ {/* Optional: dropdown if projectOrganizations exist */} + {/* Optional: dropdown if projectOrganizations exist */} +

Select Tags

+ {/* ======== org list ======*/} +
+
setStep(3)} + > + + Sample Organization 1 +
+
-
- -