From 596818609d2cd5a0ff0ce485397b0a03f95044da Mon Sep 17 00:00:00 2001 From: Piers Chambers Date: Mon, 2 Mar 2026 14:58:01 -0500 Subject: [PATCH] Patch slimselect_has_many.js to block recursive loop. --- app/assets/javascripts/activeadmin/slimselect_has_many.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/activeadmin/slimselect_has_many.js b/app/assets/javascripts/activeadmin/slimselect_has_many.js index fb8ae4c..e3f245a 100644 --- a/app/assets/javascripts/activeadmin/slimselect_has_many.js +++ b/app/assets/javascripts/activeadmin/slimselect_has_many.js @@ -3,8 +3,7 @@ // // ActiveAdmin fires `has_many_add:after` via jQuery `.trigger()`, but // slimselect_input.js listens with native `document.addEventListener`. -// jQuery custom events do NOT propagate as native DOM events, so we -// re-dispatch them here. -$(document).on('has_many_add:after', function () { +$(document).on('has_many_add:after', function (e) { + if (e.originalEvent) return // native event, don't re-dispatch document.dispatchEvent(new Event('has_many_add:after')) })