-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
43 lines (32 loc) · 897 Bytes
/
Copy pathapp.js
File metadata and controls
43 lines (32 loc) · 897 Bytes
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
const routes = {
"/login": { templateId: "login" },
"/dashboard": { templateId: "dashboard" },
"/credit": { templateId: "credit" },
};
function updateRoute() {
const path = window.location.pathname;
const route = routes[path];
if (!route) {
return navigate("/login");
}
const template = document.getElementById(route.templateId);
const view = template.content.cloneNode(true);
const app = document.getElementById("app");
app.innerHTML = "";
app.appendChild(view);
// Assignment
window.document.title = template.title;
// console.log(`${templateId}`);
}
updateRoute();
function navigate(path) {
window.history.pushState({}, path, path);
updateRoute();
}
function onLinkClick(event) {
event.preventDefault();
navigate(event.target.href);
}
window.onpopstate = () => updateRoute();
updateRoute();
// console.log(routes[window.location.pathname]);