Files
Werewolf/client/src/modules/ModalManager.js

35 lines
1.3 KiB
JavaScript

export const ModalManager = {
displayModal: displayModal,
dispelModal: dispelModal
};
function displayModal (modalId, backgroundId, closeButtonId) {
const modal = document.getElementById(modalId);
const modalOverlay = document.getElementById(backgroundId);
const closeBtn = document.getElementById(closeButtonId);
let closeModalHandler;
if (modal && modalOverlay && closeBtn) {
modal.style.display = 'flex';
modalOverlay.style.display = 'flex';
modalOverlay.removeEventListener('click', closeModalHandler);
modalOverlay.addEventListener('click', closeModalHandler = function (e) {
e.preventDefault();
dispelModal(modalId, backgroundId);
});
closeBtn.removeEventListener('click', closeModalHandler);
closeBtn.addEventListener('click', closeModalHandler);
} else {
throw new Error('One or more of the ids supplied to ModalManager.displayModal is invalid.');
}
modal.focus();
}
function dispelModal (modalId, backgroundId) {
const modal = document.getElementById(modalId);
const modalOverlay = document.getElementById(backgroundId);
if (modal && modalOverlay) {
modal.style.display = 'none';
modalOverlay.style.display = 'none';
}
}