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 }) => {