Skip to content

Commit ba3d605

Browse files
committed
rustdoc: clean up storage.js
This converts a few functions to more compact versions of themselves, and moves `RUSTDOC_MOBILE_BREAKPOINT` to main.js where it's actually used.
1 parent 9852980 commit ba3d605

File tree

3 files changed

+14
-30
lines changed

3 files changed

+14
-30
lines changed

src/librustdoc/html/static/css/rustdoc.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,7 @@ However, it's not needed with smaller screen width because the doc/code block is
15381538
/*
15391539
WARNING: RUSTDOC_MOBILE_BREAKPOINT MEDIA QUERY
15401540
If you update this line, then you also need to update the line with the same warning
1541-
in storage.js
1541+
in main.js
15421542
*/
15431543
@media (max-width: 700px) {
15441544
/* When linking to an item with an `id` (for instance, by clicking a link in the sidebar,

src/librustdoc/html/static/js/main.js

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
"use strict";
66

7+
// WARNING: RUSTDOC_MOBILE_BREAKPOINT MEDIA QUERY
8+
// If you update this line, then you also need to update the media query with the same
9+
// warning in rustdoc.css
10+
window.RUSTDOC_MOBILE_BREAKPOINT = 700;
11+
712
// Given a basename (e.g. "storage") and an extension (e.g. ".js"), return a URL
813
// for a resource under the root-path, with the resource-suffix.
914
function resourcePath(basename, extension) {

src/librustdoc/html/static/js/storage.js

+8-29
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,22 @@
88
const darkThemes = ["dark", "ayu"];
99
window.currentTheme = document.getElementById("themeStyle");
1010

11-
// WARNING: RUSTDOC_MOBILE_BREAKPOINT MEDIA QUERY
12-
// If you update this line, then you also need to update the media query with the same
13-
// warning in rustdoc.css
14-
window.RUSTDOC_MOBILE_BREAKPOINT = 700;
15-
1611
const settingsDataset = (function() {
1712
const settingsElement = document.getElementById("default-settings");
18-
if (settingsElement === null) {
19-
return null;
20-
}
21-
const dataset = settingsElement.dataset;
22-
if (dataset === undefined) {
23-
return null;
24-
}
25-
return dataset;
13+
return settingsElement && settingsElement.dataset ? settingsElement.dataset : null;
2614
})();
2715

2816
function getSettingValue(settingName) {
2917
const current = getCurrentValue(settingName);
30-
if (current !== null) {
31-
return current;
32-
}
33-
if (settingsDataset !== null) {
18+
if (current === null && settingsDataset !== null) {
3419
// See the comment for `default_settings.into_iter()` etc. in
3520
// `Options::from_matches` in `librustdoc/config.rs`.
3621
const def = settingsDataset[settingName.replace(/-/g,"_")];
3722
if (def !== undefined) {
3823
return def;
3924
}
4025
}
41-
return null;
26+
return current;
4227
}
4328

4429
const localStoredTheme = getSettingValue("theme");
@@ -49,18 +34,16 @@ function hasClass(elem, className) {
4934
}
5035

5136
function addClass(elem, className) {
52-
if (!elem || !elem.classList) {
53-
return;
37+
if (elem && elem.classList) {
38+
elem.classList.add(className);
5439
}
55-
elem.classList.add(className);
5640
}
5741

5842
// eslint-disable-next-line no-unused-vars
5943
function removeClass(elem, className) {
60-
if (!elem || !elem.classList) {
61-
return;
44+
if (elem && elem.classList) {
45+
elem.classList.remove(className);
6246
}
63-
elem.classList.remove(className);
6447
}
6548

6649
/**
@@ -127,11 +110,7 @@ function getCurrentValue(name) {
127110
// Rust to the JS. If there is no such element, return null.
128111
const getVar = (function getVar(name) {
129112
const el = document.getElementById("rustdoc-vars");
130-
if (el) {
131-
return el.attributes["data-" + name].value;
132-
} else {
133-
return null;
134-
}
113+
return el ? el.attributes["data-" + name].value : null;
135114
});
136115

137116
function switchTheme(newThemeName, saveTheme) {

0 commit comments

Comments
 (0)