diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx index 401da1fad..1dcac4f5e 100644 --- a/web/src/pages/Settings.tsx +++ b/web/src/pages/Settings.tsx @@ -66,6 +66,7 @@ import { } from "@/components/mobile/MobilePage"; import { ChevronRight } from "lucide-react"; import { IoMdArrowRoundBack } from "react-icons/io"; +import { cn } from "@/lib/utils"; const allSettingsViews = [ "ui", @@ -403,146 +404,161 @@ export default function Settings() { } return ( - - - - - {settingsGroups.map((group) => { - const filteredItems = group.items.filter((item) => - visibleSettingsViews.includes(item.key as SettingsType), - ); - if (filteredItems.length === 0) return null; - return ( - - {group.label} - {filteredItems.length === 1 ? ( - - - { - if ( - !isAdmin && - !allowedViewsForViewer.includes( - filteredItems[0].key as SettingsType, - ) - ) { - setPageToggle("ui"); - } else { - setPageToggle( - filteredItems[0].key as SettingsType, - ); - } - }} - > -
- {t("menu." + filteredItems[0].key)} -
-
-
-
- ) : ( - - {filteredItems.map((item) => ( - - +
+

+ {t("settings", { ns: "common" })} +

+
+ + + + + {settingsGroups.map((group) => { + const filteredItems = group.items.filter((item) => + visibleSettingsViews.includes(item.key as SettingsType), + ); + if (filteredItems.length === 0) return null; + return ( + + {filteredItems.length === 1 ? ( + + + { if ( !isAdmin && !allowedViewsForViewer.includes( - item.key as SettingsType, + filteredItems[0].key as SettingsType, ) ) { setPageToggle("ui"); } else { - setPageToggle(item.key as SettingsType); + setPageToggle( + filteredItems[0].key as SettingsType, + ); } }} >
- {t("menu." + item.key)} + {t("menu." + filteredItems[0].key)}
-
-
- ))} -
- )} -
- ); - })} -
-
-
- -
-
-

Settings

-
- {[ - "debug", - "cameras", - "masksAndZones", - "motionTuner", - "triggers", - ].includes(page) && ( -
- {page == "masksAndZones" && ( - - )} - -
- )} -
- {(() => { - const CurrentComponent = getCurrentComponent(page); - if (!CurrentComponent) return null; - return ( - + + + ) : ( + <> + page === item.key) + ? "text-primary" + : "text-sidebar-foreground/80", + )} + > + {group.label} + + + {filteredItems.map((item) => ( + + { + if ( + !isAdmin && + !allowedViewsForViewer.includes( + item.key as SettingsType, + ) + ) { + setPageToggle("ui"); + } else { + setPageToggle(item.key as SettingsType); + } + }} + > +
+ {t("menu." + item.key)} +
+
+
+ ))} +
+ + )} + + ); + })} + + + + +
+ {[ + "debug", + "cameras", + "masksAndZones", + "motionTuner", + "triggers", + ].includes(page) && ( +
+ {page == "masksAndZones" && ( + + )} + - ); - })()} +
+ )} +
+ {(() => { + const CurrentComponent = getCurrentComponent(page); + if (!CurrentComponent) return null; + return ( + + ); + })()} +
-
- - {confirmationDialogOpen && ( - setConfirmationDialogOpen(false)} - > - - - - {t("dialog.unsavedChanges.title")} - - - {t("dialog.unsavedChanges.desc")} - - - - handleDialog(false)}> - {t("button.cancel", { ns: "common" })} - - handleDialog(true)}> - {t("button.save", { ns: "common" })} - - - - - )} - + + {confirmationDialogOpen && ( + setConfirmationDialogOpen(false)} + > + + + + {t("dialog.unsavedChanges.title")} + + + {t("dialog.unsavedChanges.desc")} + + + + handleDialog(false)}> + {t("button.cancel", { ns: "common" })} + + handleDialog(true)}> + {t("button.save", { ns: "common" })} + + + + + )} + +
); } diff --git a/web/tailwind.config.cjs b/web/tailwind.config.cjs index 0ba6592f3..33d403e4f 100644 --- a/web/tailwind.config.cjs +++ b/web/tailwind.config.cjs @@ -119,12 +119,12 @@ module.exports = { DEFAULT: "hsl(var(--neutral_variant))", }, sidebar: { - DEFAULT: "hsl(var(--secondary))", + DEFAULT: "hsl(var(--background))", foreground: "hsl(var(--secondary-foreground))", primary: "hsl(var(--primary))", "primary-foreground": "hsl(var(--primary-foreground))", - accent: "hsl(var(--primary-variant))", - "accent-foreground": "hsl(var(--primary-foreground))", + accent: "hsl(var(--background-alt))", + "accent-foreground": "hsl(var(--primary))", border: "hsl(var(--border))", ring: "hsl(var(--ring))", },