diff --git a/frontend/src/Router.tsx b/frontend/src/Router.tsx index 6aa8f089..1f05e9e7 100644 --- a/frontend/src/Router.tsx +++ b/frontend/src/Router.tsx @@ -1,15 +1,6 @@ import { lazy, Suspense } from "react"; import { BrowserRouter, Route, Routes } from "react-router-dom"; -import { - ErrorNotFound, - LoadingPage, - Page, - SiteContainer, - SiteFooter, - SiteHeader, - SiteMenu, - Unhealthy, -} from "src/components"; +import { ErrorNotFound, LoadingPage, Page, SiteContainer, SiteFooter, SiteHeader, Unhealthy } from "src/components"; import { useAuthState } from "src/context"; import { useHealth } from "src/hooks"; @@ -55,7 +46,6 @@ function Router() {
-
}> diff --git a/frontend/src/components/SiteHeader.tsx b/frontend/src/components/SiteHeader.tsx index 07d52f98..f484504f 100644 --- a/frontend/src/components/SiteHeader.tsx +++ b/frontend/src/components/SiteHeader.tsx @@ -1,5 +1,7 @@ import { IconLock, IconLogout, IconUser } from "@tabler/icons-react"; -import { LocalePicker, NavLink, ThemeSwitcher } from "src/components"; +import cs from "classnames"; +import { useState } from "react"; +import { LocalePicker, NavLink, SiteMenu, ThemeSwitcher } from "src/components"; import { useAuthState } from "src/context"; import { useUser } from "src/hooks"; import { T } from "src/locale"; @@ -10,105 +12,110 @@ export function SiteHeader() { const { data: currentUser } = useUser("me"); const isAdmin = currentUser?.roles.includes("admin"); const { logout } = useAuthState(); + const [expanded, setExpanded] = useState(false); return ( -
-
- -
- -
- Logo -
- Nginx Proxy Manager -
-
-
+ + ); } diff --git a/frontend/src/components/SiteMenu.tsx b/frontend/src/components/SiteMenu.tsx index 3a0b0065..262c0f2c 100644 --- a/frontend/src/components/SiteMenu.tsx +++ b/frontend/src/components/SiteMenu.tsx @@ -175,7 +175,11 @@ const getMenuDropown = (item: MenuItem, onClick?: () => void) => { ); }; -export function SiteMenu() { +interface Props { + mobileExpanded?: boolean; + setMobileExpanded?: (expanded: boolean) => void; +} +export function SiteMenu({ mobileExpanded = false, setMobileExpanded }: Props) { // This is hacky AF. But that's the price of using a non-react UI kit. const closeMenus = () => { const navMenus = document.querySelectorAll(".nav-item.dropdown"); @@ -185,12 +189,13 @@ export function SiteMenu() { if (dropdown) { dropdown.classList.remove("show"); } + setMobileExpanded?.(false); }); }; return (
-
+