htmx icon indicating copy to clipboard operation
htmx copied to clipboard

`htmx-indicator` not working with websockets

Open renardeinside opened this issue 1 year ago • 1 comments

Example HTML payload:

<button class="btn btn-primary" hx-swap-oob="morph" ws-send="" hx-trigger="click" id="9242596e">
    <span class="htmx-indicator" hx-swap-oob="morph">
        <span class="loading loading-infinity" hx-swap-oob="morph"></span>
    </span>
    <div hx-swap-oob="morph">Click me</div>
</button>

Clicking on the button doesn't trigger the visibility on htmx-indicator.

renardeinside avatar Feb 18 '24 16:02 renardeinside

Ignoring some edge-cases and assuming a close will always try to reconnect, I solved this for my use-case with this simple snippet:

<script>
    htmx.on("htmx:wsOpen", (evt) => {
        evt.detail.elt.classList.remove("htmx-request");
    });
    htmx.on("htmx:wsClose", (evt) => {
        evt.detail.elt.classList.add("htmx-request");
    });
</script>

M3t0r avatar Apr 14 '24 00:04 M3t0r