diff --git a/src/components/master/MasterModal.jsx b/src/components/master/MasterModal.jsx index 52e22114..13ca0e7c 100644 --- a/src/components/master/MasterModal.jsx +++ b/src/components/master/MasterModal.jsx @@ -1,5 +1,4 @@ import React, { useState, useEffect } from "react"; - import CreateRole from "./CreateRole"; import DeleteMaster from "./DeleteMaster"; import EditRole from "./EditRole"; @@ -19,66 +18,41 @@ import EditContactCategory from "./EditContactCategory"; import EditContactTag from "./EditContactTag"; import { useDeleteMasterItem } from "../../hooks/masterHook/useMaster"; + const MasterModal = ({ modaldata, closeModal }) => { const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const { mutate: deleteMasterItem, isPending } = useDeleteMasterItem(); - // const handleSelectedMasterDeleted = async () => - // { - // debugger - // const deleteFn = MasterRespository[modaldata.masterType]; - // if (!deleteFn) { - // showToast(`No delete strategy defined for master type`,"error"); - // return false; - // } - // try - // { - // const response = await deleteFn( modaldata?.item?.id ); - // const selected_cachedData = getCachedData( modaldata?.masterType ); - // const updated_master = selected_cachedData?.filter(item => item.id !== modaldata?.item.id); - // cacheData( modaldata?.masterType, updated_master ) - - // showToast(`${modaldata?.masterType} is deleted successfully`, "success"); - // handleCloseDeleteModal() - - // } catch ( error ) - // { - // const message = error.response.data.message || error.message || "Error occured api during call" - // showToast(message, "success"); - // } - // } - const handleSelectedMasterDeleted = () => { - if (!modaldata?.masterType || !modaldata?.item?.id) { + const { masterType, item, validateFn } = modaldata || {}; + if (!masterType || !item?.id) { showToast("Missing master type or item", "error"); return; } + deleteMasterItem( - { - masterType: modaldata.masterType, - item: modaldata.item, - validateFn: modaldata.validateFn, // optional - }, - { - onSuccess: () => { - handleCloseDeleteModal(); - }, - } + { masterType, item, validateFn }, + { onSuccess: handleCloseDeleteModal } ); }; + const handleCloseDeleteModal = () => { + setIsDeleteModalOpen(false); + closeModal(); + }; + useEffect(() => { if (modaldata?.modalType === "delete") { setIsDeleteModalOpen(true); } }, [modaldata]); - const handleCloseDeleteModal = () => { - setIsDeleteModalOpen(false); + if (!modaldata?.modalType) { closeModal(); - }; + return null; + } - if (modaldata?.modalType === "delete" && isDeleteModalOpen) { + if (modaldata.modalType === "delete" && isDeleteModalOpen) { return (
{
); } + + const renderModalContent = () => { + const { modalType, item, masterType } = modaldata; + + const modalComponents = { + "Application Role": , + "Edit-Application Role": , + "Job Role": , + "Edit-Job Role": , + "Activity": , + "Edit-Activity": , + "Work Category": , + "Edit-Work Category": , + "Contact Category": , + "Edit-Contact Category": , + "Contact Tag": , + "Edit-Contact Tag": , + }; + + return modalComponents[modalType] || null; + }; + + const isLargeModal = ["Application Role", "Edit-Application Role"].includes( + modaldata.modalType + ); + return (