// static/js/11-media.js "use strict"; window.Glow = window.Glow || {}; Glow.resetMediaModal = () => { if (!Glow.els.mediaOverlay) return; Glow.els.mediaImage.classList.add("hidden"); Glow.els.mediaAudio.classList.add("hidden"); Glow.els.mediaVideo.classList.add("hidden"); Glow.els.mediaFileFallback.classList.add("hidden"); Glow.els.mediaImage.removeAttribute("src"); Glow.els.mediaImage.alt = ""; Glow.els.mediaAudio.pause(); Glow.els.mediaAudio.removeAttribute("src"); Glow.els.mediaAudio.load(); Glow.els.mediaVideo.pause(); Glow.els.mediaVideo.removeAttribute("src"); Glow.els.mediaVideo.load(); Glow.els.mediaTitle.textContent = "Media"; Glow.els.mediaDownloadLink.href = "#"; Glow.els.mediaDownloadLink.removeAttribute("download"); Glow.els.mediaFallbackLink.href = "#"; }; Glow.openMediaModal = ({ url, name = "Media", mimeType = "" }) => { if (!url || !Glow.els.mediaOverlay) return; Glow.resetMediaModal(); const mime = String(mimeType || "").toLowerCase(); const compactName = String(name || "Media").trim() || "Media"; Glow.els.mediaTitle.textContent = compactName; Glow.els.mediaTitle.title = compactName; Glow.els.mediaDownloadLink.href = url; Glow.els.mediaDownloadLink.download = compactName; Glow.els.mediaFallbackLink.href = url; if (mime.startsWith("image/")) { Glow.els.mediaImage.src = url; Glow.els.mediaImage.alt = compactName; Glow.els.mediaImage.classList.remove("hidden"); } else if (mime.startsWith("audio/")) { Glow.els.mediaAudio.src = url; Glow.els.mediaAudio.classList.remove("hidden"); } else if (mime.startsWith("video/")) { Glow.els.mediaVideo.src = url; Glow.els.mediaVideo.classList.remove("hidden"); } else { Glow.els.mediaFileFallback.classList.remove("hidden"); } Glow.els.mediaOverlay.classList.remove("hidden"); }; Glow.closeMediaModal = () => { if (!Glow.els.mediaOverlay) return; Glow.els.mediaOverlay.classList.add("hidden"); Glow.resetMediaModal(); };