glo/static/js/11-media.js
2026-10-31 08:46:10 +00:00

67 lines
2.0 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();
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();
};