-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.tsx
75 lines (64 loc) · 1.72 KB
/
index.tsx
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
import { awaitUntil } from "./utils/promises";
import "../index.css";
import { injectTheme } from "./utils/theme";
import { trackForumVisits } from "./utils/tracking";
import { injectBrand, injectFont } from "./utils/brand";
import { injectConfiguration } from "./configuration";
import { injectThread } from "./thread";
import { injectHomepage } from "./homepage";
import {
isFeaturedThreads,
isHomepage,
isSubForumThreads,
isThread,
showBody,
showContent,
} from "./utils/loader";
import { injectThreads } from "./threads";
import { ignoreThreads } from "../domains/thread";
window.ignite = {
isFirstRender: true,
render: async () => {
injectFont().then((customFont) => {
if (customFont) {
console.log(`MV-Ignited loaded font: ${customFont}`);
}
});
// Await for page mounted before trying to modify anything
await awaitUntil(() => !!document.getElementById("content"));
// To prevent blink's the default CSS loads with opacity:0, we restore the opacity here.
showBody();
if (window.ignite.isFirstRender) {
injectTheme();
injectBrand();
}
trackForumVisits();
// Configuration
if (document.getElementById("usermenu")) {
injectConfiguration();
}
// Homepage
if (isHomepage()) {
injectHomepage();
}
// Threads
if (isSubForumThreads() || isFeaturedThreads()) {
injectThreads();
}
// Thread
if (isThread()) {
injectThread();
}
ignoreThreads();
},
};
window.ignite
.render()
.then(() => {
window.ignite.isFirstRender = false;
console.log("MV-Ignited🔥 successfully rendered ✅");
})
.catch(() => {
showContent();
console.log("MV-Ignited🔥 errored 🔴");
});