From e906b237a0c5e999daed9ed0898d19f63666ec93 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 30 Apr 2026 10:57:01 -0700 Subject: [PATCH] mutate status page on save --- client/src/Pages/StatusPage/Create/index.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/client/src/Pages/StatusPage/Create/index.tsx b/client/src/Pages/StatusPage/Create/index.tsx index d972a90c7..5ef5095ea 100644 --- a/client/src/Pages/StatusPage/Create/index.tsx +++ b/client/src/Pages/StatusPage/Create/index.tsx @@ -32,6 +32,7 @@ import type { MonitorDisplayType, StatusPageResponse } from "@/Types/StatusPage" import { getMonitorTypeLabel } from "@/Types/StatusPage"; import timezones from "@/Utils/timezones.json"; import { useNavigate, useParams } from "react-router-dom"; +import { mutate } from "swr"; import axios from "axios"; import { HeaderConfigStatusControls } from "./Components/HeaderConfigStatusControls"; import { ThemePicker } from "./Components/ThemePicker"; @@ -49,6 +50,9 @@ interface TimezoneOption { name: string; } +const buildStatusPageKey = (slug: string | null | undefined) => + slug ? `/status-page/${slug}?type=uptime&type=infrastructure` : null; + const CreateStatusPage = () => { const theme = useTheme(); const { t } = useTranslation(); @@ -59,9 +63,7 @@ const CreateStatusPage = () => { // Fetch existing status page data when configuring const { data: statusPageData, isLoading: isLoadingStatusPage } = - useGet( - isCreate ? null : `/status-page/${url}?type=uptime&type=infrastructure` - ); + useGet(isCreate ? null : buildStatusPageKey(url)); const { data: monitorsResponse } = useGet(monitorsUrl); const monitors = monitorsResponse ?? []; @@ -181,6 +183,10 @@ const CreateStatusPage = () => { } if (result) { + await mutate(buildStatusPageKey(data.url)); + if (!isCreate && url !== data.url) { + await mutate(buildStatusPageKey(url)); + } navigate(`/status/${data.url}`); } };