24 lines
631 B
JavaScript
24 lines
631 B
JavaScript
let activeModal = null;
|
|
let backdrop = null;
|
|
function ensureBackdrop() {
|
|
if (backdrop)
|
|
return backdrop;
|
|
backdrop = document.createElement('div');
|
|
backdrop.className = 'modal-backdrop';
|
|
backdrop.addEventListener('click', hideModal);
|
|
document.body.appendChild(backdrop);
|
|
return backdrop;
|
|
}
|
|
export function showModal(content) {
|
|
const bd = ensureBackdrop();
|
|
if (!content.parentElement)
|
|
bd.appendChild(content);
|
|
activeModal = content;
|
|
bd.classList.add('show');
|
|
}
|
|
export function hideModal() {
|
|
if (backdrop)
|
|
backdrop.classList.remove('show');
|
|
activeModal = null;
|
|
}
|