From 7e98d8c6871445838d5cade8927c616cca3003b9 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sun, 28 Apr 2024 15:27:28 -0600 Subject: [PATCH] Use hash state for system pages --- web/src/pages/System.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/web/src/pages/System.tsx b/web/src/pages/System.tsx index 5d296f053..0534e654a 100644 --- a/web/src/pages/System.tsx +++ b/web/src/pages/System.tsx @@ -11,6 +11,7 @@ import { FaVideo } from "react-icons/fa"; import Logo from "@/components/Logo"; import useOptimisticState from "@/hooks/use-optimistic-state"; import CameraMetrics from "@/views/system/CameraMetrics"; +import { useHashState } from "@/hooks/use-overlay-state"; const metrics = ["general", "storage", "cameras"] as const; type SystemMetric = (typeof metrics)[number]; @@ -18,12 +19,18 @@ type SystemMetric = (typeof metrics)[number]; function System() { // stats page - const [page, setPage] = useState("general"); - const [pageToggle, setPageToggle] = useOptimisticState(page, setPage, 100); + const [page, setPage] = useHashState(); + const [pageToggle, setPageToggle] = useOptimisticState( + page ?? "general", + setPage, + 100, + ); const [lastUpdated, setLastUpdated] = useState(Date.now() / 1000); useEffect(() => { - document.title = `${pageToggle[0].toUpperCase()}${pageToggle.substring(1)} Stats - Frigate`; + if (pageToggle) { + document.title = `${pageToggle[0].toUpperCase()}${pageToggle.substring(1)} Stats - Frigate`; + } }, [pageToggle]); // stats collection