diff --git a/src/components/master/ManagePaymentMode.jsx b/src/components/master/ManagePaymentMode.jsx index 6cfcdc42..b05856db 100644 --- a/src/components/master/ManagePaymentMode.jsx +++ b/src/components/master/ManagePaymentMode.jsx @@ -2,7 +2,7 @@ import React, { useEffect } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; -import { useCreatePaymentMode } from "../../hooks/masterHook/useMaster"; +import { useCreatePaymentMode, useUpdatePaymentMode } from "../../hooks/masterHook/useMaster"; const ExpnseSchema = z.object({ name: z.string().min(1, { message: "Name is required" }), @@ -17,17 +17,32 @@ const ManagePaymentMode = ({ data = null, onClose }) => { formState: { errors }, } = useForm({ resolver: zodResolver(ExpnseSchema), - defaultValues: { name: "", noOfPersonsRequired: false, description: "" }, + defaultValues: { name: "", description: "" }, }); const { mutate: CreatePaymentMode, isPending } = useCreatePaymentMode(() => onClose?.() ); + const {mutate:UpdatePaymentMode,isPending:Updating} = useUpdatePaymentMode(()=>onClose?.()) const onSubmit = (payload) => { - CreatePaymentMode(payload); + if(data){ + UpdatePaymentMode({id:data.id,payload:{...payload,id:data.id}}) + }else( + CreatePaymentMode(payload) + ) + }; + useEffect(()=>{ + if(data){ + reset({ + name:data.name ?? "", + description:data.description ?? "" + }) + } + },[data]) + return (
@@ -59,16 +74,16 @@ const ManagePaymentMode = ({ data = null, onClose }) => { diff --git a/src/components/master/MasterModal.jsx b/src/components/master/MasterModal.jsx index 1a990269..63405529 100644 --- a/src/components/master/MasterModal.jsx +++ b/src/components/master/MasterModal.jsx @@ -92,7 +92,8 @@ const MasterModal = ({ modaldata, closeModal }) => { "Edit-Contact Tag": , "Expense Type":, "Edit-Expense Type":, - "Payment Mode": + "Payment Mode":, + "Edit-Payment Mode": }; return modalComponents[modalType] || null; diff --git a/src/hooks/masterHook/useMaster.js b/src/hooks/masterHook/useMaster.js index 8d238adb..131178b8 100644 --- a/src/hooks/masterHook/useMaster.js +++ b/src/hooks/masterHook/useMaster.js @@ -605,6 +605,27 @@ export const useCreatePaymentMode = (onSuccessCallback)=>{ } }) } +export const useUpdatePaymentMode = (onSuccessCallback)=>{ + const queryClient = useQueryClient(); + + return useMutation( { + mutationFn: async ( {id,payload} ) => + { + const resp = await MasterRespository.updatePaymentMode(id,payload); + return resp.data; + }, + onSuccess: ( data ) => + { + queryClient.invalidateQueries( {queryKey:[ "masterData", "Payment Mode" ]} ) + showToast( "Payment Mode Updated successfully", "success" ); + if(onSuccessCallback) onSuccessCallback(data) + }, + onError: ( error ) => + { + showToast(error.message || "Something went wrong", "error"); + } + }) +} // -Delete Master -------- export const useDeleteMasterItem = () => { diff --git a/src/repositories/MastersRepository.jsx b/src/repositories/MastersRepository.jsx index 876a1c9a..afa3a056 100644 --- a/src/repositories/MastersRepository.jsx +++ b/src/repositories/MastersRepository.jsx @@ -66,6 +66,7 @@ export const MasterRespository = { getPaymentMode:()=>api.get('/api/Master/payment-modes'), createPaymentMode:(data)=>api.post(`/api/Master/payment-mode`,data), + updatePaymentMode:(id,data)=>api.put(`/api/Master/payment-mode/edit/${id}`,data), getExpenseStatus:()=>api.get('/api/Master/expenses-status')