import React, { useEffect } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { useCreateOrganization, useOrganizationModal, useUpdateOrganization, } from "../../hooks/useOrganization"; import { defaultOrganizationValues, organizationSchema, } from "./OrganizationSchema"; import Label from "../common/Label"; import { useGlobalServices } from "../../hooks/masterHook/useMaster"; import { zodResolver } from "@hookform/resolvers/zod"; import SelectMultiple from "../common/SelectMultiple"; const ManagOrg = () => { const { data: service, isLoading } = useGlobalServices(); const { isOpen, orgData, startStep, onOpen, onClose, prevStep } = useOrganizationModal(); const method = useForm({ resolver: zodResolver(organizationSchema), defaultValues: defaultOrganizationValues, }); const { handleSubmit, register, reset, formState: { errors }, } = method; // Create & Update mutations const { mutate: createOrganization, isPending: isCreating } = useCreateOrganization(() => { reset(defaultOrganizationValues); onOpen({ startStep: 1 }); onClose(); }); const { mutate: updateOrganization, isPending: isUpdating } = useUpdateOrganization(() => { reset(defaultOrganizationValues); onOpen({ startStep: 1 }); onClose(); }); // Prefill form if editing useEffect(() => { if (orgData) { console.log(orgData) reset({ name: orgData.name || "", contactPerson: orgData.contactPerson || "", contactNumber: orgData.contactNumber || "", email: orgData.email || "", serviceIds: orgData.services?.map(s => s.id) || [], address: orgData.address || "", }); } }, [orgData, reset]); const onSubmit = (payload) => { if (orgData?.id) { updateOrganization({ id: orgData.id, ...payload }); } else { createOrganization(payload); } }; return (
{errors.name && {errors.name.message}}
{errors.contactPerson && {errors.contactPerson.message}}
{errors.contactNumber && {errors.contactNumber.message}}
{errors.email && {errors.email.message}}
{errors.serviceIds && {errors.serviceIds.message}}