Skip to content

Commit

Permalink
Rollup merge of #92803 - jsha:hide-sidebar, r=GuillaumeGomez
Browse files Browse the repository at this point in the history
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.

Fixes #92682

Demo: https://rustdoc.crud.net/jsha/hide-sidebar/std/string/struct.String.html
  • Loading branch information
matthiaskrgr authored Jan 18, 2022
2 parents 804072f + b71f1fb commit cc2339c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/librustdoc/html/static/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -902,6 +902,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 (<A> tags with a hash property), we expand the section we're
Expand All @@ -910,6 +913,7 @@ function hideThemeButtonState() {
if (el.hash) {
el.addEventListener("click", function() {
expandSection(el.hash.slice(1));
hideSidebar();
});
}
});
Expand Down
8 changes: 8 additions & 0 deletions src/test/rustdoc-gui/sidebar-mobile.goml
Original file line number Diff line number Diff line change
Expand Up @@ -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"})

0 comments on commit cc2339c

Please sign in to comment.