// mcias.js — HTMX event wiring for the MCIAS web UI. // Show server error responses in the global #htmx-error-banner. // // HTMX 2.x fires htmx:responseError for 4xx/5xx responses and does not swap // the body into the target by default. The server's renderError() always // returns a
fragment whose message is // HTML-escaped server-side, so setting innerHTML here is safe. document.body.addEventListener('htmx:responseError', function (evt) { var banner = document.getElementById('htmx-error-banner'); if (!banner) { return; } var body = (evt.detail.xhr && evt.detail.xhr.responseText) || 'An unexpected error occurred.'; banner.innerHTML = body; banner.style.display = ''; banner.scrollIntoView({ behavior: 'instant', block: 'nearest' }); }); // Clear the error banner whenever a successful HTMX swap completes so // stale errors do not persist after the user corrects their input. document.body.addEventListener('htmx:afterSwap', function () { var banner = document.getElementById('htmx-error-banner'); if (banner) { banner.style.display = 'none'; banner.innerHTML = ''; } });