glo/static/js/11-media.js
2026-09-24 22:33:36 +00:00

66 lines
1.8 KiB
JavaScript

// 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();
Glow.els.mediaTitle.textContent = name;
Glow.els.mediaDownloadLink.href = url;
Glow.els.mediaDownloadLink.download = name;
Glow.els.mediaFallbackLink.href = url;
if (mime.startsWith("image/")) {
Glow.els.mediaImage.src = url;
Glow.els.mediaImage.alt = name;
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();
};