diff --git a/src/ext/sse.js b/src/ext/sse.js index c8a8fff1..bb6ed949 100644 --- a/src/ext/sse.js +++ b/src/ext/sse.js @@ -53,7 +53,7 @@ This extension adds support for Server Sent Events to htmx. See /www/extensions source.onerror = function (err) { api.triggerErrorEvent(parent, "htmx:sseError", {error:err, source:source}); - maybeCloseSSESource(parent); + maybeCloseSSESource(api, parent); }; api.getInternalData(parent).sseEventSource = source; @@ -79,7 +79,7 @@ This extension adds support for Server Sent Events to htmx. See /www/extensions // Register the new listener api.getInternalData(parent).sseEventListener = listener; source.addEventListener(sseEventName, listener); - }) + }); // Add message handlers for every `hx-trigger="sse:*"` attribute queryAttributeOnThisOrChildren(api, parent, "hx-trigger").forEach(function(child) { @@ -100,13 +100,13 @@ This extension adds support for Server Sent Events to htmx. See /www/extensions } // Trigger events to be handled by the rest of htmx - api.triggerEvent(child, sseEventName, event) - api.triggerEvent(child, "htmx:sseMessage", event) + htmx.trigger(child, sseEventName, event) + htmx.trigger(child, "htmx:sseMessage", event) } // Register the new listener api.getInternalData(parent).sseEventListener = listener; - source.addEventListener(sseEventName, listener); + source.addEventListener(sseEventName.slice(4), listener); }) } } diff --git a/src/htmx.js b/src/htmx.js index 8432148b..4c416e2d 100644 --- a/src/htmx.js +++ b/src/htmx.js @@ -882,8 +882,6 @@ return (function () { every.eventFilter = eventFilter; } triggerSpecs.push(every); - } else if (trigger.indexOf("sse:") === 0) { - triggerSpecs.push({trigger: 'sse', sseEvent: trigger.substr(4)}); } else { var triggerSpec = {trigger: trigger}; var eventFilter = maybeGenerateConditional(elt, tokens, "event"); diff --git a/test/manual/sse-triggers.html b/test/manual/sse-triggers.html new file mode 100644 index 00000000..1a578b14 --- /dev/null +++ b/test/manual/sse-triggers.html @@ -0,0 +1,53 @@ + +
+ + + + + + + +