Stateful dashboard interactions
const dashboardState = {
mode: "monthly",
data: {
monthly: { reports: 2847, timeSaved: 1240 },
quarterly: { reports: 8310, timeSaved: 3720 }
}
};
function setDashboardMode(mode) {
if (!dashboardState.data[mode]) return;
dashboardState.mode = mode;
renderDashboard();
}
function renderDashboard() {
const { reports, timeSaved } = dashboardState.data[dashboardState.mode];
document.querySelector("[data-kpi='reports']").textContent =
reports.toLocaleString();
document.querySelector("[data-kpi='time-saved']").textContent =
timeSaved.toLocaleString();
}
document.querySelectorAll("[data-mode-toggle]").forEach(button => {
button.addEventListener("click", () => {
setDashboardMode(button.dataset.modeToggle);
});
});
renderDashboard();
Accessible modal controller
function createModalController(root) {
const openButtons = document.querySelectorAll("[data-open-modal]");
const closeButtons = root.querySelectorAll("[data-close-modal]");
const dialog = root.querySelector("[role='dialog']");
function openModal() {
root.hidden = false;
dialog.focus();
document.body.style.overflow = "hidden";
}
function closeModal() {
root.hidden = true;
document.body.style.overflow = "";
}
openButtons.forEach(btn => btn.addEventListener("click", openModal));
closeButtons.forEach(btn => btn.addEventListener("click", closeModal));
root.addEventListener("click", event => {
if (event.target === root) closeModal();
});
document.addEventListener("keydown", event => {
if (event.key === "Escape" && !root.hidden) closeModal();
});
}