prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

app.js (1233B)


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