Merge pull request #2449 from bluewave-labs/fix/status-page-on-monitor-delete

fix/status page on monitor delete
This commit is contained in:
Alexander Holliday
2025-06-14 11:41:41 +08:00
committed by GitHub
10 changed files with 47 additions and 9 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ import { useSelector } from "react-redux";
import Alert from "../Alert";
import { useTranslation } from "react-i18next";
import "./index.css";
import { useFetchSettings } from "../../Hooks/useFetchSettings";
import { useFetchSettings } from "../../Hooks/settingsHooks";
import { useState } from "react";
/**
* Fallback component to display a fallback UI with a title, a list of checks, and a navigation button.
+1 -1
View File
@@ -5,7 +5,7 @@ import Button from "@mui/material/Button";
import TextInput from "../../../Components/Inputs/TextInput";
import { PasswordEndAdornment } from "../../../Components/Inputs/TextInput/Adornments";
import { loginCredentials } from "../../../Validation/validation";
import TextLink from "../components/TextLink";
import TextLink from "../../../Components/TextLink";
import Typography from "@mui/material/Typography";
// Utils
+1 -1
View File
@@ -18,7 +18,7 @@ import { useSelector, useDispatch } from "react-redux";
import { setTimezone, setMode, setLanguage, setShowURL } from "../../Features/UI/uiSlice";
import SettingsStats from "./SettingsStats";
import { useFetchSettings, useSaveSettings } from "../../Hooks/useFetchSettings";
import { useFetchSettings, useSaveSettings } from "../../Hooks/settingsHooks";
import { useIsAdmin } from "../../Hooks/useIsAdmin";
import {
useAddDemoMonitors,
@@ -8,6 +8,7 @@ import StatusBar from "./Components/StatusBar";
import MonitorsList from "./Components/MonitorsList";
import Dialog from "../../../Components/Dialog";
import Breadcrumbs from "../../../Components/Breadcrumbs/index.jsx";
import TextLink from "../../../Components/TextLink";
// Utils
import { useStatusPageFetch } from "./Hooks/useStatusPageFetch";
@@ -30,6 +31,7 @@ const PublicStatus = () => {
const { t } = useTranslation();
const location = useLocation();
const navigate = useNavigate();
const isAdmin = useIsAdmin();
const [statusPage, monitors, isLoading, networkError, fetchStatusPage] =
useStatusPageFetch(false, url);
@@ -60,6 +62,26 @@ const PublicStatus = () => {
return <SkeletonLayout />;
}
if (monitors.length === 0) {
return (
<GenericFallback>
<Typography
variant="h1"
marginY={theme.spacing(4)}
color={theme.palette.primary.contrastTextTertiary}
>
{"Theres nothing here yet"}
</Typography>
{isAdmin && (
<TextLink
linkText={"Add a monitor to get started"}
href={`/status/uptime/configure/${url}`}
/>
)}
</GenericFallback>
);
}
// Error fetching data
if (networkError === true) {
return (
+1 -2
View File
@@ -142,8 +142,7 @@ const CreateMonitor = () => {
notifications: monitor.notifications,
};
console.log(JSON.stringify(form, null, 2));
// await createMonitor({ monitor: form, redirect: "/uptime" });
await createMonitor({ monitor: form, redirect: "/uptime" });
};
const onChange = (event) => {