Fix aria-busy during swap and make it a plugin

This commit is contained in:
2026-09-07 17:23:23 +02:00
parent 4f885b4ba7
commit cbd80c17a2
+18 -11
View File
@@ -48,19 +48,26 @@ polyfillCountryFlagEmojis();
/** /**
* HTMX * HTMX
*/ */
document.body.addEventListener( htmx.registerExtension("aria-busy", {
"htmx:before:request" as keyof HTMLElementEventMap, // biome-ignore lint/style/useNamingConvention: api's name
(event) => { htmx_before_request: (
(event as CustomEvent).detail.ctx.target.ariaBusy = true; _: HTMLElement,
detail: { ctx: { target: HTMLElement | undefined } },
) => {
if (detail.ctx.target !== undefined) {
(detail.ctx.target as HTMLElement).ariaBusy = "true";
}
}, },
); // biome-ignore lint/style/useNamingConvention: api's name
htmx_after_swap: (
document.body.addEventListener( _: HTMLElement,
"htmx:before:swap" as keyof HTMLElementEventMap, detail: { ctx: { target: HTMLElement | undefined } },
(event) => { ) => {
(event as CustomEvent).detail.ctx.target.ariaBusy = null; if (detail.ctx.target !== undefined) {
(detail.ctx.target as HTMLElement).ariaBusy = null;
}
}, },
); });
Object.assign(window, { htmx }); Object.assign(window, { htmx });