const ManageOrganization1 = ({ projectOrganizations = [], organizationId = null, }) => { const [step, setStep] = useState(1); // default = scenario decision const orgModal = useOrganizationModal(); const { data: services, isLoading } = useServices(); const method = useForm({ resolver: zodResolver(organizationSchema), defaultValues: defaultOrganizationValues, }); const { handleSubmit, register, reset, formState: { errors }, } = method; const { mutate: CreateOrganization, isPending } = useCreateOrganization( () => { reset(defaultOrganizationValues); orgModal.onClose(); setStep(1); // reset to first step } ); // 🔹 Decide first step when modal opens useEffect(() => { if (orgModal.isOpen) { if (organizationId) { setStep(3); // update flow → show org details directly } else if (projectOrganizations && projectOrganizations.length > 0) { setStep(1); // Scenario 1 → from current tenant list } else { setStep(2); // Scenario 2 → search with SPRID } } }, [orgModal.isOpen, organizationId, projectOrganizations]); const onSubmit = (OrgPayload) => { CreateOrganization(OrgPayload); }; const RenderTitle = useMemo(() => { if (organizationId) return "Update Organization"; if (step === 1) return "Add Organization"; // current tenant if (step === 2) return "Find Organization"; // search with SPRID if (step === 3) return "Organization Details"; if (step === 4) return "Create Organization"; return "Manage Organization"; }, [step, organizationId]); const contentBody = (
{/* ---------- STEP 1: From Current Tenant Organizations ---------- */} {step === 1 && (
{projectOrganizations.map((org, idx) => (
setStep(3)} > {org}
))}
)} {/* ---------- STEP 2: Search by Service Provider ID ---------- */} {step === 2 && (
{/* Example SPR results */}
setStep(3)} > Sample Organization (SPRID)
)} {/* ---------- STEP 3: Organization Details ---------- */} {step === 3 && (

Show organization details here (from SPR or tenant list). User selects services and clicks Add.

  • Service 1
  • Service 2
)} {/* ---------- STEP 4: Create New Organization ---------- */} {step === 4 && (
{/* same form as your code, unchanged */} {/* ... */}
)}
); return ( ); }; export default ManageOrganization;