app.js (1175B)
1 import { initAbout } from "./modules/about.js"; 2 import { initBlog } from "./modules/blog.js"; 3 import { initBlogDetail } from "./modules/blogDetail.js"; 4 import { initExperience } from "./modules/experience.js"; 5 import { initHeader, updateAppTitle } from "./modules/header.js"; 6 import { initHelp } from "./modules/help.js"; 7 import { initLayout } from "./modules/layout.js"; 8 import { initLightbox } from "./modules/lightbox.js"; 9 import { initProjects } from "./modules/projects.js"; 10 11 function initApp() { 12 initHeader(); 13 initHelp(); 14 initLightbox(); 15 initLayout(); 16 17 const initDynamicContent = () => { 18 initAbout(); 19 initProjects(); 20 initExperience(); 21 initBlog(); 22 initBlogDetail(); 23 updateAppTitle(); 24 }; 25 initDynamicContent(); 26 27 document.addEventListener("htmx:afterSwap", (e) => { 28 if (!e.target) return; 29 30 switch (e.target.id) { 31 case "content": 32 case "project-detail": 33 case "blog-post-content": 34 initDynamicContent(); 35 break; 36 default: 37 break; 38 } 39 }); 40 } 41 42 if (document.readyState === "loading") { 43 document.addEventListener("DOMContentLoaded", initApp, { once: true }); 44 } else { 45 initApp(); 46 }