fix(deployment): unregister Livewire morph hook on teardown

Store the morph.updated cleanup callback and invoke it during Alpine destroy so deployment log search hooks do not survive component teardown.
This commit is contained in:
Andras Bacsai committed 2026-05-26 14:57:20 +02:00
1 parent 7f35a2d98e
commit 0c6a233b27
2 files changed
+12 -4

No files matched your search

@@ -94,6 +94,11 @@ it('scopes scroll teardown to the component so a stale loop cannot leak across d
->not->toContain("document.getElementById('logsContainer')")
// morph.updated hook only acts on this component's own DOM.
->toContain('this.$root.contains(el)')
// Global Livewire hook is unregistered when Alpine tears down.
->toContain('morphUpdatedCleanup: null')
->toContain("this.morphUpdatedCleanup = Livewire.hook('morph.updated'")
->toContain("typeof this.morphUpdatedCleanup === 'function'")
->toContain('this.morphUpdatedCleanup()')
// Continuation timeout is tracked so it can be cancelled.
->toContain('scrollTimeout');
});