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 f41c1bd817ab2..3acd1ccd4cec6 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 7138f91667573..eecd584bca9ec 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"})