From 6c5b62eb40f5b787b055c977b81b100c08fb8d76 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Thu, 8 May 2025 18:23:27 +0530 Subject: [PATCH] added delete functionality for each master --- src/components/master/MasterModal.jsx | 35 +++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/components/master/MasterModal.jsx b/src/components/master/MasterModal.jsx index 066e8a79..130873f1 100644 --- a/src/components/master/MasterModal.jsx +++ b/src/components/master/MasterModal.jsx @@ -8,9 +8,39 @@ 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"; + const MasterModal = ({ modaldata, closeModal }) => { - const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); + 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") { @@ -35,7 +65,8 @@ const MasterModal = ({ modaldata, closeModal }) => {