23 lines
1020 B
JavaScript
23 lines
1020 B
JavaScript
(() => {
|
|
"use strict";
|
|
const dialog = document.getElementById("photoPreview");
|
|
const preview = document.getElementById("previewPhoto");
|
|
let rotation = 0;
|
|
document.querySelectorAll("[data-photo-index]").forEach((button) => {
|
|
button.addEventListener("click", () => {
|
|
const image = document.getElementById(`photo-${button.dataset.photoIndex}`);
|
|
if (!image || !dialog || !preview) return;
|
|
rotation = 0;
|
|
preview.style.transform = "rotate(0deg)";
|
|
preview.src = image.currentSrc || image.src;
|
|
dialog.showModal();
|
|
});
|
|
});
|
|
document.getElementById("rotatePhoto")?.addEventListener("click", () => {
|
|
rotation = (rotation + 90) % 360;
|
|
preview.style.transform = `rotate(${rotation}deg)`;
|
|
});
|
|
document.getElementById("closePhotoPreview")?.addEventListener("click", () => dialog?.close());
|
|
dialog?.addEventListener("click", (event) => { if (event.target === dialog) dialog.close(); });
|
|
})();
|