-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpages.js
More file actions
38 lines (37 loc) · 1.18 KB
/
pages.js
File metadata and controls
38 lines (37 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const pages = {};
const pagesButtons = {};
/**
* @type {Iterable<HTMLDivElement>}
*/
const pagesElementChildren = document.querySelector("#pages").children;
/**
* @type {Iterable<HTMLButtonElement>}
*/
const pagesButtonsChildren = document.querySelector("#page-selection").children;
let lastPage,currentPage;
function refresh(){
console.debug(`Current page was set to: ${currentPage}`);
if(lastPage !== undefined){
pages[lastPage].classList.add("hidden");
pagesButtons[lastPage].classList.remove("active");
}
pages[currentPage].classList.remove("hidden");
pagesButtons[currentPage].classList.add("active");
lastPage = currentPage;
window.localStorage.setItem("last-page", currentPage);
}
for(const child of pagesElementChildren){
pages[child.dataset.page] = child;
}
for(const button of pagesButtonsChildren){
button.addEventListener("click", e => {
currentPage = button.dataset.page;
refresh();
});
pagesButtons[button.dataset.page] = button;
}
if(window.localStorage.getItem("last-page") === null){
window.localStorage.setItem("last-page", "projects");
}
currentPage = window.localStorage.getItem("last-page");
refresh();