import React, { useState, useEffect } from "react"; import CreateRole from "./CreateRole"; import DeleteMaster from "./DeleteMaster"; import EditRole from "./EditRole"; import CreateJobRole from "./CreateJobRole"; import EditJobRole from "./EditJobRole"; import CreateActivity from "./CreateActivity"; import EditActivity from "./EditActivity"; import ConfirmModal from "../common/ConfirmModal"; import { MasterRespository } from "../../repositories/MastersRepository"; import { cacheData, getCachedData } from "../../slices/apiDataManager"; import showToast from "../../services/toastService"; import CreateWorkCategory from "./CreateWorkCategory"; import EditWorkCategory from "./EditWorkCategory"; import CreateCategory from "./CreateContactCategory"; import CreateContactTag from "./CreateContactTag"; 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) { showToast("Missing master type or item", "error"); return; } deleteMasterItem( { masterType: modaldata.masterType, item: modaldata.item, validateFn: modaldata.validateFn, // optional }, { onSuccess: () => { handleCloseDeleteModal(); }, } ); }; useEffect(() => { if (modaldata?.modalType === "delete") { setIsDeleteModalOpen(true); } }, [modaldata]); const handleCloseDeleteModal = () => { setIsDeleteModalOpen(false); closeModal(); }; if (modaldata?.modalType === "delete" && isDeleteModalOpen) { return (