castopod/app/Resources/js/modules/Modal.ts
Yassine Doghri 37c54d2477 feat: build hashed static files to renew browser cache
- replace rollup config with vitejs
- use vite dev server during development to take advantage of
hot module replacement (HMR)
- add vite service using Vite library to load css and js assets
- update package.json scripts and remove unnecessary
dependencies
- update scripts/bundle-prepare.sh

closes #107
2021-07-12 17:47:56 +00:00

35 lines
962 B
TypeScript

const Modal = (): void => {
const modalTriggerElements: NodeListOf<HTMLElement> = document.querySelectorAll(
"[data-modal-target]"
);
for (let i = 0; i < modalTriggerElements.length; i++) {
const modalTrigger = modalTriggerElements[i];
if (modalTrigger.dataset.modalTarget) {
const modal: HTMLElement | null = document.getElementById(
modalTrigger.dataset.modalTarget
);
if (modal) {
modalTrigger.addEventListener("click", () => {
modal.classList.toggle("hidden");
});
const closeButtonsElements: NodeListOf<HTMLElement> = modal.querySelectorAll(
"[data-modal-button]"
);
for (let j = 0; j < closeButtonsElements.length; j++) {
const closeButton = closeButtonsElements[j];
closeButton.addEventListener("click", () => {
modal.classList.toggle("hidden");
});
}
}
}
}
};
export default Modal;