oliverbooth.dev/src/ts/app.ts

40 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-08-10 21:47:28 +00:00
import API from "./API";
2023-08-10 13:19:11 +00:00
import UI from "./UI";
2023-08-10 21:47:28 +00:00
import Input from "./Input";
declare const Handlebars: any;
2023-08-04 11:55:16 +00:00
(() => {
2023-08-10 21:47:28 +00:00
Input.registerShortcut(Input.KONAMI_CODE, () => {
window.open("https://www.youtube.com/watch?v=dQw4w9WgXcQ", "_blank");
});
2023-08-10 13:19:11 +00:00
const blogPostContainer = UI.blogPostContainer;
if (blogPostContainer) {
const template = Handlebars.compile(UI.blogPostTemplate.innerHTML);
API.getBlogPostCount().then(async (count) => {
for (let i = 0; i < count; i++) {
const posts = await API.getBlogPosts(i, 5);
for (const post of posts) {
const author = await API.getAuthor(post.authorId);
const card = UI.createBlogPostCard(template, post, author);
blogPostContainer.appendChild(card);
UI.updateUI(card);
}
i += 4;
}
2023-08-10 03:57:17 +00:00
document.body.appendChild(UI.createDisqusCounterScript());
const spinner = document.querySelector("#blog-loading-spinner");
if (spinner) {
spinner.classList.add("removed");
setTimeout(() => spinner.remove(), 1100);
}
});
}
2023-08-10 14:15:06 +00:00
UI.updateUI();
2023-08-04 11:55:16 +00:00
})();