Added delete pagespeed thunk

This commit is contained in:
Daniel Cojocea committed 2024-08-08 16:37:23 -04:00
1 parent 8ac9e19238
commit 0addb128bf
2 files changed
+51 -6

No files matched your search

@@ -68,6 +68,27 @@ export const getPageSpeedByUserId = createAsyncThunk(
}
);
export const deletePageSpeedMonitor = createAsyncThunk(
"monitors/deleteMonitor",
async (data, thunkApi) => {
try {
const { authToken, monitor } = data;
const res = await axiosInstance.delete(`/monitors/${monitor._id}`, {
headers: {
Authorization: `Bearer ${authToken}`,
"Content-Type": "application/json",
},
});
return res.data;
} catch (error) {
if (error.response && error.response.data) {
return thunkApi.rejectWithValue(error.response.data);
}
return thunkApi.rejectWithValue(error.message);
}
}
);
const pageSpeedMonitorSlice = createSlice({
name: "pageSpeedMonitor",
initialState,
@@ -137,6 +158,25 @@ const pageSpeedMonitorSlice = createSlice({
state.msg = action.payload
? action.payload.msg
: "Failed to create page speed monitor";
})
// *****************************************************
// Delete Monitor
// *****************************************************
.addCase(deletePageSpeedMonitor.pending, (state) => {
state.isLoading = true;
})
.addCase(deletePageSpeedMonitor.fulfilled, (state, action) => {
state.isLoading = false;
state.success = action.payload.success;
state.msg = action.payload.msg;
})
.addCase(deletePageSpeedMonitor.rejected, (state, action) => {
state.isLoading = false;
state.success = false;
state.msg = action.payload
? action.payload.msg
: "Failed to delete page speed monitor";
});
},
});
+11 -6
View File
@@ -3,6 +3,8 @@ import { useTheme } from "@emotion/react";
import { Box, Modal, Stack, Typography } from "@mui/material";
import { useDispatch, useSelector } from "react-redux";
import { useNavigate, useParams } from "react-router";
import { deletePageSpeedMonitor } from "../../../Features/PageSpeedMonitor/pageSpeedMonitorSlice";
import { createToast } from "../../../Utils/toastUtils";
import Button from "../../../Components/Button";
import Field from "../../../Components/Inputs/Field";
import Select from "../../../Components/Inputs/Select";
@@ -11,6 +13,7 @@ import PauseCircleOutlineIcon from "@mui/icons-material/PauseCircleOutline";
import WestRoundedIcon from "@mui/icons-material/WestRounded";
import GreenCheck from "../../../assets/icons/checkbox-green.svg?react";
import RedCheck from "../../../assets/icons/checkbox-red.svg?react";
import "./index.css";
const PageSpeedConfigure = () => {
@@ -65,12 +68,14 @@ const PageSpeedConfigure = () => {
const [isOpen, setIsOpen] = useState(false);
const handleRemove = async (event) => {
event.preventDefault();
// const action = await dispatch(deletePageSpeedMonitor({ authToken, monitor }));
// if (action.meta.requestStatus === "fulfilled") {
// navigate("/monitors");
// } else {
// createToast({ body: "Failed to delete monitor." });
// }
const action = await dispatch(
deletePageSpeedMonitor({ authToken, monitor })
);
if (action.meta.requestStatus === "fulfilled") {
navigate("/pagespeed");
} else {
createToast({ body: "Failed to delete monitor." });
}
};
return (