diff --git a/client/src/Hooks/checkHooks.js b/client/src/Hooks/checkHooks.js index cc942b294..dac2be671 100644 --- a/client/src/Hooks/checkHooks.js +++ b/client/src/Hooks/checkHooks.js @@ -1,32 +1,60 @@ -import { useState } from "react"; -import { useEffect } from "react"; +import { useState, useEffect } from "react"; import { networkService } from "../main"; import { createToast } from "../Utils/toastUtils"; -const useFetchChecks = ({ monitorId, monitorType, dateRange, page, rowsPerPage }) => { +const useFetchChecks = ({ + teamId, + monitorId, + type, + status, + sortOrder, + limit, + dateRange, + filter, + page, + rowsPerPage, +}) => { const [checks, setChecks] = useState(undefined); const [checksCount, setChecksCount] = useState(undefined); const [isLoading, setIsLoading] = useState(false); const [networkError, setNetworkError] = useState(false); useEffect(() => { - if (!monitorType) { - return; - } - const fetchChecks = async () => { + if (!type && !teamId) { + return; + } + + const method = monitorId + ? networkService.getChecksByMonitor + : networkService.getChecksByTeam; + + const config = monitorId + ? { + monitorId, + type, + status, + sortOrder, + limit, + dateRange, + filter, + page, + rowsPerPage, + } + : { + status, + teamId, + sortOrder, + limit, + dateRange, + filter, + page, + rowsPerPage, + }; + try { setIsLoading(true); - const res = await networkService.getChecksByMonitor({ - monitorId: monitorId, - type: monitorType, - sortOrder: "desc", - limit: null, - dateRange: dateRange, - filter: null, - page: page, - rowsPerPage: rowsPerPage, - }); + const res = await method(config); setChecks(res.data.data.checks); setChecksCount(res.data.data.checksCount); } catch (error) { @@ -36,8 +64,20 @@ const useFetchChecks = ({ monitorId, monitorType, dateRange, page, rowsPerPage } setIsLoading(false); } }; + fetchChecks(); - }, [monitorId, monitorType, dateRange, page, rowsPerPage]); + }, [ + monitorId, + teamId, + type, + status, + sortOrder, + limit, + dateRange, + filter, + page, + rowsPerPage, + ]); return [checks, checksCount, isLoading, networkError]; }; diff --git a/client/src/Pages/Incidents/Hooks/useChecksFetch.jsx b/client/src/Pages/Incidents/Hooks/useChecksFetch.jsx deleted file mode 100644 index a2f2c8211..000000000 --- a/client/src/Pages/Incidents/Hooks/useChecksFetch.jsx +++ /dev/null @@ -1,66 +0,0 @@ -import { useState, useEffect } from "react"; -import { networkService } from "../../../main"; -import { createToast } from "../../../Utils/toastUtils"; -import { useSelector } from "react-redux"; -const useChecksFetch = ({ - selectedMonitor, - selectedMonitorType, - filter, - dateRange, - page, - rowsPerPage, -}) => { - //Redux - const { user } = useSelector((state) => state.auth); - - //Local - const [isLoading, setIsLoading] = useState(true); - const [networkError, setNetworkError] = useState(false); - const [checks, setChecks] = useState(undefined); - const [checksCount, setChecksCount] = useState(undefined); - - useEffect(() => { - const fetchChecks = async () => { - try { - setIsLoading(true); - let res; - - if (selectedMonitor === "0") { - res = await networkService.getChecksByTeam({ - status: false, - teamId: user.teamId, - sortOrder: "desc", - limit: null, - dateRange, - filter: filter, - page: page, - rowsPerPage: rowsPerPage, - }); - } else { - res = await networkService.getChecksByMonitor({ - status: false, - monitorId: selectedMonitor, - type: selectedMonitorType, - sortOrder: "desc", - limit: null, - dateRange, - filter: filter, - page, - rowsPerPage, - }); - } - setChecks(res.data.data.checks); - setChecksCount(res.data.data.checksCount); - } catch (error) { - setNetworkError(true); - createToast({ body: error.message }); - } finally { - setIsLoading(false); - } - }; - fetchChecks(); - }, [user, dateRange, page, rowsPerPage, filter, selectedMonitor, selectedMonitorType]); - return { isLoading, networkError, checks, checksCount }; -}; - -export default useChecksFetch; diff --git a/client/src/Pages/Incidents/Hooks/useMonitorsFetch.jsx b/client/src/Pages/Incidents/Hooks/useMonitorsFetch.jsx deleted file mode 100644 index 46d187aaf..000000000 --- a/client/src/Pages/Incidents/Hooks/useMonitorsFetch.jsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useState, useEffect } from "react"; -import { networkService } from "../../../main"; -import { createToast } from "../../../Utils/toastUtils"; -const useMonitorsFetch = ({ teamId }) => { - //Local state - const [isLoading, setIsLoading] = useState(true); - const [networkError, setNetworkError] = useState(false); - - const [monitors, setMonitors] = useState(undefined); - - useEffect(() => { - const fetchMonitors = async () => { - try { - setIsLoading(true); - const res = await networkService.getMonitorsByTeamId({ - teamId, - limit: null, - types: null, - status: null, - checkOrder: null, - normalize: null, - page: null, - rowsPerPage: null, - filter: null, - field: null, - order: null, - }); - if (res?.data?.data?.filteredMonitors?.length > 0) { - const monitorLookup = res.data.data.filteredMonitors.reduce((acc, monitor) => { - acc[monitor._id] = { - _id: monitor._id, - name: monitor.name, - type: monitor.type, - }; - return acc; - }, {}); - setMonitors(monitorLookup); - } - } catch (error) { - setNetworkError(true); - createToast({ - body: error.message, - }); - } finally { - setIsLoading(false); - } - }; - - fetchMonitors(); - }, [teamId]); - return { isLoading, monitors, networkError }; -}; - -export { useMonitorsFetch };