-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
126 lines (103 loc) · 4.57 KB
/
main.js
File metadata and controls
126 lines (103 loc) · 4.57 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import { createMods, getMods } from "./createMods.js";
import { searchForMods, setAndReturnTagsList } from "./searching.js";
import { HTML } from "./imperative-html/elements-strict.js";
import { setTheme, _themeStyleElement } from "./themes.js"
import { preferencesPrompt, setPreferedTab, setPromptOpacity, currentView, switchView } from "./preferences.js";
const { select, option, div } = HTML;
const sorterValues = ["name", "date", "order added"];
createSortbar();
const Mods = await getMods();
window.Mods = Mods;
window.setList = setAndReturnTagsList();
createMods(Mods, "date", false);
document.getElementById("prompt").appendChild(preferencesPrompt);
if (window.localStorage.getItem("promptOpacity") != null) {
setPromptOpacity(Number(window.localStorage.getItem("promptOpacity")));
document.getElementById("promptOpacitySlider").value = Number(window.localStorage.getItem("promptOpacity"));
}
if (window.localStorage.getItem("setView") != null) {
document.getElementById("setViewSelect").value = window.localStorage.getItem("setView");
} else {
document.getElementById("setViewSelect").value = "previous";
window.localStorage.setItem("setView", "previous");
}
var urlThing = String(window.location.hash);
var urlThing2 = urlThing.substring(3);
if (window.location != (location.pathname + "/#s=" || location.pathname)) {
document.getElementById("searchbar").value = decodeURIComponent(urlThing2);
searchForMods(urlThing2);
}
window.searchForMod = searchForMods;
function createSortbar() {
const sorter = select({ class: "sort", id: "sorter" });
const header = document.getElementById("sortContainer");
header.appendChild(buildOptions(sorter, sorterValues));
sorter.value = 1;
sorter.addEventListener("change", () => recreateMods());
const reverseButton = div({ class: "reverseButton down", id: "reverseButton" });
header.append(reverseButton);
reverseButton.addEventListener("click", () => {
if (document.getElementById("reverseButton").classList.contains("down")) {
reverseButton.classList.remove("down");
reverseButton.classList.add("up");
} else {
reverseButton.classList.remove("up");
reverseButton.classList.add("down");
}
recreateMods();
});
}
function recreateMods() {
document.getElementById("prompt").innerHTML = "";
document.getElementById("modContainer").innerHTML = "";
createMods(Mods, sorterValues[document.getElementById("sorter").value], document.getElementById("reverseButton").classList.contains("up"));
document.getElementById("prompt").appendChild(preferencesPrompt);
if (window.localStorage.getItem("promptOpacity") != null) {
setPromptOpacity(Number(window.localStorage.getItem("promptOpacity")));
document.getElementById("promptOpacitySlider").value = Number(window.localStorage.getItem("promptOpacity"));
}
if (window.localStorage.getItem("setView") != null) {
document.getElementById("setViewSelect").value = window.localStorage.getItem("setView");
} else {
document.getElementById("setViewSelect").value = "previous";
window.localStorage.setItem("setView", "previous");
}
searchForMods(document.getElementById("searchbar").value);
if (currentView == 2) {
switchView(2);
// console.log("switching view: "+currentView)
}
}
window.switchView = switchView;
window.setPromptOpacity = setPromptOpacity;
window.setPreferedTab = setPreferedTab;
window.setTheme = setTheme;
export function buildOptions(menu, items) {
for (let index = 0; index < items.length; index++) {
menu.appendChild(option({ value: index }, items[index]));
}
return menu;
}
if (window.localStorage.getItem("colorTheme") != null) {
document.getElementById("themeSelect").value = window.localStorage.getItem("colorTheme");
setTheme(window.localStorage.getItem("colorTheme"));
} else {
document.getElementById("themeSelect").value = "dark";
window.localStorage.setItem("colorTheme", "dark");
}
if (window.localStorage.getItem("setView") != null) {
if (window.localStorage.getItem("setView") == "previous") {
if (window.localStorage.getItem("previousView") != null) {
switchView(Number(window.localStorage.getItem("previousView")));
} else {
switchView(1);
}
} else if (window.localStorage.getItem("setView") == "mods") {
switchView(1);
} else if (window.localStorage.getItem("setView") == "favs") {
switchView(2);
}
} else {
window.localStorage.setItem("setView", "previous");
switchView(1);
}