42 lines
939 B
JavaScript
42 lines
939 B
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
const dialog = document.getElementById("photo-modal");
|
|
|
|
function openDialog() {
|
|
if (dialog && !dialog.open) {
|
|
dialog.showModal();
|
|
}
|
|
}
|
|
|
|
function closeDialog() {
|
|
if (dialog && dialog.open) {
|
|
dialog.close();
|
|
}
|
|
}
|
|
|
|
document.body.addEventListener("click", (event) => {
|
|
const trigger = event.target.closest("[data-modal-trigger]");
|
|
const closer = event.target.closest("[data-modal-close]");
|
|
if (closer) {
|
|
event.preventDefault();
|
|
closeDialog();
|
|
}
|
|
if (trigger) {
|
|
event.preventDefault();
|
|
}
|
|
});
|
|
|
|
document.body.addEventListener("htmx:afterSwap", (event) => {
|
|
if (event.target && event.target.id === "photo-modal-content") {
|
|
openDialog();
|
|
}
|
|
});
|
|
|
|
if (dialog) {
|
|
dialog.addEventListener("click", (event) => {
|
|
if (event.target === dialog) {
|
|
closeDialog();
|
|
}
|
|
});
|
|
}
|
|
});
|