From b71f1fb0027cf49909d8597fcc90a77d5f573cc3 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Tue, 11 Jan 2022 18:27:44 -0800 Subject: [PATCH] Hide mobile sidebar on some clicks When the user clicks outside the sidebar, the sidebar should close. Also, when the user clicks an internal link in the sidebar, it should close. --- src/librustdoc/html/static/js/main.js | 4 ++++ src/test/rustdoc-gui/sidebar-mobile.goml | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js index f41c1bd817ab..3acd1ccd4cec 100644 --- a/src/librustdoc/html/static/js/main.js +++ b/src/librustdoc/html/static/js/main.js @@ -897,6 +897,9 @@ function hideThemeButtonState() { handleClick("help-button", function(ev) { displayHelp(true, ev); }); + handleClick(MAIN_ID, function() { + hideSidebar(); + }); onEachLazy(document.getElementsByTagName("a"), function(el) { // For clicks on internal links ( tags with a hash property), we expand the section we're @@ -905,6 +908,7 @@ function hideThemeButtonState() { if (el.hash) { el.addEventListener("click", function() { expandSection(el.hash.slice(1)); + hideSidebar(); }); } }); diff --git a/src/test/rustdoc-gui/sidebar-mobile.goml b/src/test/rustdoc-gui/sidebar-mobile.goml index 7138f9166757..eecd584bca9e 100644 --- a/src/test/rustdoc-gui/sidebar-mobile.goml +++ b/src/test/rustdoc-gui/sidebar-mobile.goml @@ -18,3 +18,11 @@ assert-css: (".sidebar-elems", {"display": "block", "left": "0px"}) // When we tab out of the sidebar, close it. focus: ".search-input" assert-css: (".sidebar-elems", {"display": "block", "left": "-246px"}) + +// Open the sidebar menu. +click: ".sidebar-menu" +assert-css: (".sidebar-elems", {"left": "0px"}) + +// Click elsewhere. +click: "body" +assert-css: (".sidebar-elems", {"left": "-246px"})