Skip to content

Commit

Permalink
Add update trigger for pause state
Browse files Browse the repository at this point in the history
  • Loading branch information
ajhollid committed Dec 11, 2024
1 parent f32f994 commit d5acfd9
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 9 deletions.
4 changes: 3 additions & 1 deletion Client/src/Pages/Monitors/Home/CurrentMonitoring/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import useDebounce from "../../../../Utils/debounce";
import PropTypes from "prop-types";
import { Heading } from "../../../../Components/Heading";

const CurrentMonitoring = ({ totalMonitors, monitors, isAdmin }) => {
const CurrentMonitoring = ({ totalMonitors, monitors, isAdmin, handlePause }) => {
const theme = useTheme();
const [search, setSearch] = useState("");
const [isSearching, setIsSearching] = useState(false);
Expand Down Expand Up @@ -55,12 +55,14 @@ const CurrentMonitoring = ({ totalMonitors, monitors, isAdmin }) => {
filter={debouncedFilter}
setIsSearching={setIsSearching}
isSearching={isSearching}
handlePause={handlePause}
/>
</Box>
);
};

CurrentMonitoring.propTypes = {
handlePause: PropTypes.func,
totalMonitors: PropTypes.number,
monitors: PropTypes.array,
isAdmin: PropTypes.bool,
Expand Down
8 changes: 5 additions & 3 deletions Client/src/Pages/Monitors/Home/MonitorTable/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import ArrowUpwardRoundedIcon from "@mui/icons-material/ArrowUpwardRounded";

import { Pagination } from "../../../Infrastructure/components/TablePagination";

const MonitorTable = ({ isAdmin, filter, setIsSearching, isSearching }) => {
const MonitorTable = ({ isAdmin, filter, setIsSearching, isSearching, handlePause }) => {
const theme = useTheme();
const navigate = useNavigate();
const dispatch = useDispatch();
Expand All @@ -48,7 +48,7 @@ const MonitorTable = ({ isAdmin, filter, setIsSearching, isSearching }) => {
const [sort, setSort] = useState({});
const prevFilter = useRef(filter);

const handleActionMenuDelete = () => {
const handleRowUpdate = () => {
setUpdateTrigger((prev) => !prev);
};

Expand Down Expand Up @@ -297,7 +297,8 @@ const MonitorTable = ({ isAdmin, filter, setIsSearching, isSearching }) => {
<ActionsMenu
monitor={monitor}
isAdmin={isAdmin}
updateCallback={handleActionMenuDelete}
updateRowCallback={handleRowUpdate}
pauseCallback={handlePause}
/>
</TableCell>
</TableRow>
Expand Down Expand Up @@ -325,6 +326,7 @@ MonitorTable.propTypes = {
filter: PropTypes.string,
setIsSearching: PropTypes.func,
isSearching: PropTypes.bool,
setMonitorUpdateTrigger: PropTypes.func,
};

const MemoizedMonitorTable = memo(MonitorTable);
Expand Down
7 changes: 4 additions & 3 deletions Client/src/Pages/Monitors/Home/actionsMenu.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import Settings from "../../../assets/icons/settings-bold.svg?react";
import PropTypes from "prop-types";
import Dialog from "../../../Components/Dialog";

const ActionsMenu = ({ monitor, isAdmin, updateCallback }) => {
const ActionsMenu = ({ monitor, isAdmin, updateRowCallback, pauseCallback }) => {
const [anchorEl, setAnchorEl] = useState(null);
const [actions, setActions] = useState({});
const [isOpen, setIsOpen] = useState(false);
Expand Down Expand Up @@ -47,9 +47,9 @@ const ActionsMenu = ({ monitor, isAdmin, updateCallback }) => {
pauseUptimeMonitor({ authToken, monitorId: monitor._id })
);
if (pauseUptimeMonitor.fulfilled.match(action)) {
updateCallback();
const state = action?.payload?.data.isActive === false ? "paused" : "resumed";
createToast({ body: `Monitor ${state} successfully.` });
pauseCallback();
} else {
throw new Error(action?.error?.message ?? "Failed to pause monitor.");
}
Expand Down Expand Up @@ -219,7 +219,8 @@ ActionsMenu.propTypes = {
isActive: PropTypes.bool,
}).isRequired,
isAdmin: PropTypes.bool,
updateCallback: PropTypes.func,
updateRowCallback: PropTypes.func,
pauseCallback: PropTypes.func,
};

export default ActionsMenu;
10 changes: 8 additions & 2 deletions Client/src/Pages/Monitors/Home/index.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import "./index.css";
import { useEffect } from "react";
import { useEffect, useState } from "react";
import { useSelector, useDispatch } from "react-redux";
import { getUptimeMonitorsByTeamId } from "../../../Features/UptimeMonitors/uptimeMonitorsSlice";
import { useNavigate } from "react-router-dom";
Expand All @@ -19,10 +19,15 @@ const Monitors = ({ isAdmin }) => {
const monitorState = useSelector((state) => state.uptimeMonitors);
const authState = useSelector((state) => state.auth);
const dispatch = useDispatch({});
const [monitorUpdateTrigger, setMonitorUpdateTrigger] = useState(false);

const handlePause = () => {
setMonitorUpdateTrigger((prev) => !prev);
};

useEffect(() => {
dispatch(getUptimeMonitorsByTeamId(authState.authToken));
}, [authState.authToken, dispatch]);
}, [authState.authToken, dispatch, monitorUpdateTrigger]);

//TODO bring fetching to this component, like on pageSpeed

Expand Down Expand Up @@ -92,6 +97,7 @@ const Monitors = ({ isAdmin }) => {
isAdmin={isAdmin}
monitors={monitorState.monitorsSummary.monitors}
totalMonitors={totalMonitors}
handlePause={handlePause}
/>
</>
)}
Expand Down

0 comments on commit d5acfd9

Please sign in to comment.