Skip to content

Commit 805bb62

Browse files
committed
fix: dispatch end event on action element rather than document
1 parent 5bc1076 commit 805bb62

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/index.js

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ const CoCreateApi = {
129129
} else {
130130
CoCreateApi.setData(object);
131131

132-
document.dispatchEvent(
132+
object.element.dispatchEvent(
133133
new CustomEvent(object.endEvent, {
134134
detail: {
135135
data: object
@@ -167,13 +167,14 @@ const CoCreateApi = {
167167
if (!elements[i] || elements[i].closest("[template]")) continue;
168168
let key = elements[i].getAttribute(`${name}-key`);
169169
if (key) {
170-
let value = await elements[i].getValue();
170+
let value =
171+
elements[i].stripeElement || (await elements[i].getValue());
171172
if (key.endsWith("[]")) {
172173
if (!data[key]) data[key] = [];
173174

174175
if (Array.isArray(value)) data[key].push(...value);
175176
else data[key].push(value);
176-
} else data[key] = await elements[i].getValue();
177+
} else data[key] = value;
177178
}
178179

179180
let endpoint = elements[i].getAttribute("endpoint");
@@ -212,7 +213,9 @@ const CoCreateApi = {
212213
let form = object.form;
213214
if (!form) form = document;
214215

215-
let elements = form.querySelectorAll(`[${name}="${object.method}"]`);
216+
let elements = form.querySelectorAll(
217+
`[${name}="${object.method}"]:not([${name}-response="false"])`
218+
);
216219
if (!elements || elements.length == 0) return;
217220

218221
for (let i = 0; i < elements.length; i++) {
@@ -229,13 +232,24 @@ const CoCreateApi = {
229232
selector: `[template="${templateid}"]`,
230233
data
231234
});
235+
} else if (elements[i].renderValue) {
236+
let key = elements[i].getAttribute(`${name}-key`);
237+
if (key === "{}") {
238+
elements[i].renderValue(data[name]);
239+
} else {
240+
let value = getValueFromObject(data[name], key);
241+
if (typeof value === "function") {
242+
value = value(); // Call the function and assign its return value.
243+
}
244+
elements[i].renderValue(value);
245+
}
232246
} else {
233247
let key = elements[i].getAttribute(`${name}-key`);
234248
if (key === "{}") elements[i].setValue(data[name]);
235249
else {
236250
let value = getValueFromObject(data[name], key);
237251
if (typeof value === "function") {
238-
value = value(); // Call the function and assign its return value
252+
value = value(); // Call the function and assign its return value.
239253
}
240254
elements[i].setValue(value);
241255
}

0 commit comments

Comments
 (0)