diff --git a/_components/LayoutWrapper.tsx b/_components/LayoutWrapper.tsx index aea0ed8..8525995 100644 --- a/_components/LayoutWrapper.tsx +++ b/_components/LayoutWrapper.tsx @@ -6,7 +6,7 @@ import navbar from '../top-nav.yaml'; * top navbar regardless of whether the top nav has an alert banner active. */ export default function LayoutWrapper(props) { - const topmargin = navbar.alertbanner.show ? {"margin-top": "126px"} : {"margin-top": "80px"}; + const topmargin = navbar.alertbanner.show ? {"marginTop": "126px"} : {"marginTop": "80px"}; return (
{props.children} {} diff --git a/_override/NavBar.tsx b/_override/NavBar.tsx index a02b1d0..f4692d4 100644 --- a/_override/NavBar.tsx +++ b/_override/NavBar.tsx @@ -24,6 +24,20 @@ export default function CustomNavBar(props: NavBarProps) { } }); + React.useEffect(() => { + // Turns out jQuery is necessary for firing events on Bootstrap v4 + // dropdowns. These events set classes so that the search bar and other + // submenus collapse on mobile when you expand one submenu. + const dds = $("#topnav-pages .dropdown"); + const top_main_nav = document.querySelector("#top-main-nav"); + dds.on("show.bs.dropdown", (evt) => { + top_main_nav.classList.add("submenu-expanded"); + }); + dds.on("hidden.bs.dropdown", (evt) => { + top_main_nav.classList.remove("submenu-expanded"); + }); + }) + return ( <>
@@ -143,7 +155,7 @@ export function NavDropdown(props) { export function NavWrapper(props) { return ( -