diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx index 930e8aefa..3743a2100 100644 --- a/web/src/pages/Settings.tsx +++ b/web/src/pages/Settings.tsx @@ -56,11 +56,11 @@ import { SidebarMenuSubItem, SidebarProvider, } from "@/components/ui/sidebar"; -import { ChevronRight } from "lucide-react"; import { IoMdArrowRoundBack } from "react-icons/io"; import { cn } from "@/lib/utils"; import Heading from "@/components/ui/heading"; -import { isPWA } from "@/utils/isPWA"; +import { LuChevronRight } from "react-icons/lu"; +import Logo from "@/components/Logo"; const allSettingsViews = [ "ui", @@ -127,24 +127,26 @@ function MobileMenuItem({ item, onSelect, onClose, + className, }: { item: { key: string }; onSelect: (key: string) => void; onClose: () => void; + className?: string; }) { const { t } = useTranslation(["views/settings"]); return ( ); } @@ -268,96 +270,97 @@ export default function Settings() { if (isMobile) { return ( -
-
- -

- {t("menu." + page)} -

- {[ - "debug", - "cameras", - "masksAndZones", - "motionTuner", - "triggers", - ].includes(page) && ( -
- {page == "masksAndZones" && ( - - )} - -
- )} -
- {mobileMenuOpen && ( -
-
-
-
-

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

-
+ <> + {mobileMenuOpen ? ( +
+
+
+
+
+

+ {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 ( -
-

+
+ {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 && ( +

{group.label}

- {filteredItems.map((item) => ( - { - if ( - !isAdmin && - !allowedViewsForViewer.includes( - key as SettingsType, - ) - ) { - setPageToggle("ui"); - } else { - setPageToggle(key as SettingsType); - } - }} - onClose={() => setMobileMenuOpen(false)} - /> - ))} -
- ); - })} -
+ )} + {filteredItems.map((item) => ( + { + if ( + !isAdmin && + !allowedViewsForViewer.includes(key as SettingsType) + ) { + setPageToggle("ui"); + } else { + setPageToggle(key as SettingsType); + } + }} + onClose={() => setMobileMenuOpen(false)} + /> + ))} +

+ ); + })}
+ ) : ( +
+ +

+ {t("menu." + page)} +

+ {[ + "debug", + "cameras", + "masksAndZones", + "motionTuner", + "triggers", + ].includes(page) && ( +
+ {page == "masksAndZones" && ( + + )} + +
+ )} +
)}
{(() => { @@ -397,7 +400,7 @@ export default function Settings() { )} -
+ ); }