diff --git a/assets/js/sidebar/sidebar-drawer.js b/assets/js/sidebar/sidebar-drawer.js index b6f0022c8..f096c6a49 100644 --- a/assets/js/sidebar/sidebar-drawer.js +++ b/assets/js/sidebar/sidebar-drawer.js @@ -51,6 +51,8 @@ if (!isEmbedded) { // We observe on mousedown because we only care about user resize. sidebar.addEventListener('mousedown', () => resizeObserver.observe(sidebar)) sidebar.addEventListener('mouseup', () => resizeObserver.unobserve(sidebar)) + + window.addEventListener('hashchange', maybeCloseSidebarOnNavigate) } function setDefaultSidebarState () { @@ -114,3 +116,13 @@ function transitionSidebar (open) { export function openSidebar () { return transitionSidebar(true) } + +/** + * Closes the sidebar on small screens when navigating between sections + * on the page, for consistency with full page transitions + */ +function maybeCloseSidebarOnNavigate () { + if (smallScreenQuery.matches && isSidebarOpen()) { + transitionSidebar(false) + } +}