From c963153a64c0099d94c674c58397ebafb7065172 Mon Sep 17 00:00:00 2001 From: leastbad Date: Sun, 24 Oct 2021 22:58:58 -0400 Subject: [PATCH] cover edge case with missing element aborting reflex due to selector memory --- javascript/callbacks.js | 6 ++++-- lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/javascript/callbacks.js b/javascript/callbacks.js index 846454ee..eea1ce28 100644 --- a/javascript/callbacks.js +++ b/javascript/callbacks.js @@ -78,7 +78,8 @@ const afterDOMUpdate = event => { ) ) - CableReady.perform(reflex.piggybackOperations) + if (reflex.piggybackOperations.length) + CableReady.perform(reflex.piggybackOperations) } const routeReflexEvent = event => { @@ -120,7 +121,8 @@ const routeReflexEvent = event => { ) ) - CableReady.perform(reflex.piggybackOperations) + if (reflex.piggybackOperations.length) + CableReady.perform(reflex.piggybackOperations) } const nothing = (event, payload, promise, reflex, reflexElement) => { diff --git a/lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb b/lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb index b55c2b89..92341f2d 100644 --- a/lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb +++ b/lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb @@ -6,6 +6,7 @@ def broadcast(_, data) operations << ["document", :dispatch_event] cable_ready.dispatch_event( name: "stimulus-reflex:morph-nothing", + selector: nil, payload: payload, stimulus_reflex: data.merge(morph: to_sym) ).broadcast