From 80f1ce33571508b6210628b3338f09840f7b870f Mon Sep 17 00:00:00 2001
From: Eric Kwoka <43540491+ekwoka@users.noreply.github.com>
Date: Wed, 20 Mar 2024 18:50:05 +0900
Subject: [PATCH 1/2] :test_tube: Adds failing .fill.debounce test
---
tests/cypress/integration/directives/x-model.spec.js | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/tests/cypress/integration/directives/x-model.spec.js b/tests/cypress/integration/directives/x-model.spec.js
index db280bee9..c45422a3d 100644
--- a/tests/cypress/integration/directives/x-model.spec.js
+++ b/tests/cypress/integration/directives/x-model.spec.js
@@ -282,3 +282,15 @@ test(
}
);
+test(
+ 'x-model with fill and debounce still fills value',
+ html`
+
+
+
+ `,
+ ({ get }) => {
+ get('[x-data]').should(haveData('a', 'hello'));
+ }
+);
+
From 7e05a9102ae7948e51ae7c9f21545a000a59b739 Mon Sep 17 00:00:00 2001
From: Eric Kwoka <43540491+ekwoka@users.noreply.github.com>
Date: Wed, 20 Mar 2024 19:17:55 +0900
Subject: [PATCH 2/2] :bug: Fixes .fill.debounce conflict
---
packages/alpinejs/src/directives/x-model.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/alpinejs/src/directives/x-model.js b/packages/alpinejs/src/directives/x-model.js
index ed3c79f0d..80dbbb272 100644
--- a/packages/alpinejs/src/directives/x-model.js
+++ b/packages/alpinejs/src/directives/x-model.js
@@ -72,7 +72,9 @@ directive('model', (el, { modifiers, expression }, { effect, cleanup }) => {
if (modifiers.includes('fill'))
if ([undefined, null, ''].includes(getValue())
|| (el.type === 'checkbox' && Array.isArray(getValue()))) {
- el.dispatchEvent(new Event(event, {}));
+ setValue(
+ getInputValue(el, modifiers, { target: el }, getValue())
+ );
}
// Register the listener removal callback on the element, so that
// in addition to the cleanup function, x-modelable may call it.