Skip to content

Commit 0eda372

Browse files
committed
Clean up hash fragment handling code
1 parent 93f3ac7 commit 0eda372

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

html/js/code.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ addEventListener("load", function() {
6363
var fileList = document.querySelector("#files");
6464
var fileInfo = document.querySelector("#fileInfo");
6565

66-
function selectChapter(number) {
66+
function selectChapter(number, context) {
6767
per.textContent = "";
6868
var chapter = getChapter(number);
6969
if (chapter.exercises.length) {
@@ -83,6 +83,7 @@ addEventListener("load", function() {
8383
a.href = file;
8484
a.textContent = file.replace(/^code\//, "");
8585
});
86+
selectContext(context || "box");
8687
}
8788

8889
function findExercise(id, chapter) {
@@ -167,7 +168,6 @@ addEventListener("load", function() {
167168
});
168169
chapters.addEventListener("change", function() {
169170
selectChapter(chapters.value);
170-
selectContext(per.value);
171171
document.location.hash = "#" + chapters.value;
172172
});
173173

@@ -180,19 +180,20 @@ addEventListener("load", function() {
180180
if (!chapter || valid[2] && !exercise) valid = null;
181181
}
182182
if (valid) {
183+
var perValue = exercise ? hash : "box", setPer = false;
183184
if (chapters.value != valid[1]) {
184185
chapters.value = valid[1];
185-
selectChapter(Number(valid[1]));
186+
selectChapter(Number(valid[1]), perValue);
187+
setPer = true;
186188
}
187-
var perValue = exercise ? hash : "box";
188189
if (per.value != perValue) {
189190
per.value = perValue;
190-
selectContext(perValue);
191+
if (!setPer) selectContext(perValue);
191192
}
192193
return true;
193194
}
194195
}
195196

196-
parseFragment() || (selectChapter(0) && selectContext(per.value));
197+
parseFragment() || selectChapter(0, "box");
197198
addEventListener("hashchange", parseFragment);
198199
});

0 commit comments

Comments
 (0)