diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx index e855646d1..dfd87b72b 100644 --- a/web/src/pages/Settings.tsx +++ b/web/src/pages/Settings.tsx @@ -159,7 +159,7 @@ function MobileMenuItem({ export default function Settings() { const { t } = useTranslation(["views/settings"]); const [page, setPage] = useState("ui"); - const [_, setPageToggle] = useOptimisticState(page, setPage, 100); + const [pageToggle, setPageToggle] = useOptimisticState(page, setPage, 100); const [contentMobileOpen, setContentMobileOpen] = useState(false); const { data: config } = useSWR("config"); @@ -236,7 +236,10 @@ export default function Settings() { const firstEnabledCamera = cameras.find((cam) => cameraEnabledStates[cam.name]) || cameras[0]; setSelectedCamera(firstEnabledCamera.name); - } else if (!cameraEnabledStates[selectedCamera] && page !== "cameras") { + } else if ( + !cameraEnabledStates[selectedCamera] && + pageToggle !== "cameras" + ) { // Switch to first enabled camera if current one is disabled, unless on "camera settings" page const firstEnabledCamera = cameras.find((cam) => cameraEnabledStates[cam.name]) || cameras[0]; @@ -245,15 +248,15 @@ export default function Settings() { } } } - }, [cameras, selectedCamera, cameraEnabledStates, page]); + }, [cameras, selectedCamera, cameraEnabledStates, pageToggle]); useSearchEffect("page", (page: string) => { if (allSettingsViews.includes(page as SettingsType)) { // Restrict viewer to UI settings if (!isAdmin && !allowedViewsForViewer.includes(page as SettingsType)) { - setPage("ui"); + setPageToggle("ui"); } else { - setPage(page as SettingsType); + setPageToggle(page as SettingsType); } } // don't clear url params if we're creating a new object mask @@ -342,7 +345,7 @@ export default function Settings() { "triggers", ].includes(page) ? (
- {page == "masksAndZones" && ( + {pageToggle == "masksAndZones" && ( - {page == "masksAndZones" && ( + {pageToggle == "masksAndZones" && ( { if ( !isAdmin && @@ -479,7 +482,9 @@ export default function Settings() { page === item.key) + filteredItems.some( + (item) => pageToggle === item.key, + ) ? "text-primary" : "text-sidebar-foreground/80", )} @@ -490,7 +495,7 @@ export default function Settings() { {filteredItems.map((item) => ( { if ( !isAdmin &&