Jake Vanderwerf
2025-09-30 2cb91676044ecd0abd9c45b4835abb8b0d042312
1
(()=>{class e{constructor(){this.quips={logo:["Fetching items..."],uploading:["Sending to server..."],...JSON.parse(loadingQuips.quips)},this.isLoading=!1,this.overlay=document.querySelector(".loading-overlay"),this.overlay&&(this.overlayMessage=this.overlay.querySelector(".message"),this.overlayTitle=this.overlay.querySelector("h3"),this.overlayIcon=this.overlay.querySelector("div.icon"),this.quipInterval=null,this.activeLoads=0,this.currentQuips=this.defaultQuips)}showLoading(e="",t="Loading",s=null){this.isLoading=!0,this.activeLoads++,this.overlayTitle.textContent=t,this.currentQuips=s||this.defaultQuips,e&&(this.overlayMessage.textContent=e),this.overlay.classList.add("active"),document.body.classList.add("loading"),document.body.style.overflow="hidden",this.startQuipCycle()}hideLoading(){this.activeLoads--,this.activeLoads<=0&&(this.activeLoads=0,this.overlay.classList.remove("active"),document.body.style.overflow="",document.body.classList.remove("loading"),this.stopQuipCycle()),this.isLoading=!1}setContent(e){console.log(e);let t=Object.keys(this.quips);e=0===(e=t.map((s=>!!t.includes(e)&&e)).filter(Boolean)).length?["logo"]:e,this.currentContent=e}startQuipCycle(){this.quipInterval&&clearInterval(this.quipInterval);let e={};this.currentContent.forEach((t=>{this.quips[t].forEach((s=>{e[s]=t}))}));let t=this.shuffleArray(Object.keys(e)),s=0;this.overlayMessage.textContent=t[0],this.overlayMessage.classList.remove("changing");let o="",i="";this.quipInterval=setInterval((()=>{this.overlayMessage.classList.add("changing"),setTimeout((()=>{s=(s+1)%t.length,o=e[t[s]],o!==i&&(window.removeChildren(this.overlayIcon),this.overlayIcon.append(window.getIcon(o))),window.typeText(this.overlayMessage,t[s]),this.overlayMessage.classList.remove("changing"),i=o}),300)}),2e3)}stopQuipCycle(){this.quipInterval&&(clearInterval(this.quipInterval),this.quipInterval=null)}shuffleArray(e){for(let t=e.length-1;t>0;t--){const s=Math.floor(Math.random()*(t+1));[e[t],e[s]]=[e[s],e[t]]}return e}startAutosaving(){document.body.classList.add("autosaving")}stopAutosaving(e="Saved!"){document.body.classList.remove("autosaving");const t=document.querySelector(".save-popup");t.classList.add("show"),"Saved!"!==e&&(t.innerText=e),setTimeout((()=>{t.classList.remove("show")}),1500)}showError(e){this.overlayTitle.textContent="Error",this.overlayMessage.textContent=e,this.overlay.classList.add("active","error"),document.body.style.overflow="hidden",setTimeout((()=>{this.overlay.classList.remove("active","error"),document.body.style.overflow=""}),3e3)}}document.addEventListener("DOMContentLoaded",(()=>{window.jvbLoading=new e}))})();