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 CreateServices from "./CreateServices"; import EditServices from "./EditServices"; import CreateActivityGroup from "./CreateActivityGroup"; import EditActivityGroup from "./EditActivityGroup"; const MasterModal = ({ modaldata, closeModal }) => { const [ isDeleteModalOpen, setIsDeleteModalOpen ] = useState( false ); const handleSelectedMasterDeleted = async () => { 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"); } } useEffect(() => { if (modaldata?.modalType === "delete") { setIsDeleteModalOpen(true); } }, [modaldata]); const handleCloseDeleteModal = () => { setIsDeleteModalOpen(false); closeModal(); }; if (modaldata?.modalType === "delete" && isDeleteModalOpen) { return (