Newer
Older
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
import * as Home from "/components/home/home.js";
import * as Users from "/components/users/users.js";
import * as Client from "/components/clientPage/clientPage.js";
import * as Banker from "/components/bankerPage/bankerPage.js";
import * as Login from "/components/login/login.js";
import * as Navbar from "/components/navbar/navbar.js";
import { AnimateCSS } from "/services/common/common.js";
const mountPoint = document.getElementById("main");
const spinner = document.getElementById("spinner");
let sysInfoInterval;
document.addEventListener("DOMContentLoaded", function() {
Navbar.mount("navbar");
window.addEventListener("hashchange", navigate);
navigate();
});
async function navigate() {
clearInterval(sysInfoInterval);
switch (location.hash) {
case "#home":
load(mountPoint, async function() {
await Home.mount("main");
});
break;
case "#users":
load(mountPoint, async function() {
await Users.mount("main");
});
break;
case "#client":
load(mountPoint, async function() {
await Client.mount("main");
});
break;
case "#banker":
load(mountPoint, async function() {
await Banker.mount("main");
});
break;
case "#login":
load(mountPoint, async function() {
await Login.mount("main");
});
break;
default:
location.hash = "#home";
break;
}
}
async function load(element, domAlteration) {
AnimateCSS(element, "fadeOut", async function() {
element.classList.add("is-hidden");
spinner.classList.remove("is-hidden");
AnimateCSS(spinner, "fadeIn");
if (typeof domAlteration === "function") {
await domAlteration();
AnimateCSS(spinner, "fadeOut", function() {
spinner.classList.add("is-hidden");
});
element.classList.remove("is-hidden");
AnimateCSS(element, "fadeIn");
}
});
}