Files
TaskTracker/TaskTracker.Api/wwwroot/js/components/modal.js
AJ Isaacs e12f78c479 chore: initial commit of TaskTracker project
Existing ASP.NET API with vanilla JS SPA, WindowWatcher, Chrome extension, and MCP server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:08:45 -05:00

34 lines
1.1 KiB
JavaScript

const overlay = document.getElementById('modal-overlay');
export function showModal(title, contentHtml, actions = []) {
overlay.innerHTML = `
<div class="modal">
<div class="modal-title">${title}</div>
<div class="modal-body">${contentHtml}</div>
<div class="modal-actions" id="modal-actions"></div>
</div>`;
const actionsEl = document.getElementById('modal-actions');
actions.forEach(({ label, cls, onClick }) => {
const btn = document.createElement('button');
btn.className = `btn ${cls || ''}`;
btn.textContent = label;
btn.addEventListener('click', async () => {
await onClick(overlay.querySelector('.modal'));
closeModal();
});
actionsEl.appendChild(btn);
});
overlay.classList.remove('hidden');
overlay.addEventListener('click', onOverlayClick);
}
export function closeModal() {
overlay.classList.add('hidden');
overlay.innerHTML = '';
overlay.removeEventListener('click', onOverlayClick);
}
function onOverlayClick(e) {
if (e.target === overlay) closeModal();
}