@marvalt/madapter 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +24 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +25 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/react/components/MauticForm.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2171,8 +2171,8 @@ const MauticForm = ({ formId, title, description, className = '', form, onSubmit
|
|
|
2171
2171
|
const [showSuccessMessage, setShowSuccessMessage] = React.useState(false);
|
|
2172
2172
|
const [turnstileToken, setTurnstileToken] = React.useState(null);
|
|
2173
2173
|
const submitMutation = useMauticFormSubmission();
|
|
2174
|
-
// Get Turnstile site key from environment
|
|
2175
|
-
const
|
|
2174
|
+
// Get Turnstile site key from environment - memoized to prevent re-renders
|
|
2175
|
+
const turnstilesiteKey = React.useMemo(() => {
|
|
2176
2176
|
try {
|
|
2177
2177
|
// @ts-ignore - import.meta is a Vite-specific global
|
|
2178
2178
|
if (typeof ({ url: (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)) }) !== 'undefined' && undefined) {
|
|
@@ -2186,8 +2186,27 @@ const MauticForm = ({ formId, title, description, className = '', form, onSubmit
|
|
|
2186
2186
|
// import.meta not available
|
|
2187
2187
|
}
|
|
2188
2188
|
return undefined;
|
|
2189
|
-
};
|
|
2190
|
-
|
|
2189
|
+
}, []); // Empty deps - site key doesn't change during runtime
|
|
2190
|
+
// Memoize Turnstile callbacks to prevent widget re-renders
|
|
2191
|
+
const handleTurnstileSuccess = React.useCallback((token) => {
|
|
2192
|
+
setTurnstileToken(token);
|
|
2193
|
+
// Clear any turnstile error
|
|
2194
|
+
setErrors(prev => {
|
|
2195
|
+
if (!prev._turnstile)
|
|
2196
|
+
return prev;
|
|
2197
|
+
const next = { ...prev };
|
|
2198
|
+
delete next._turnstile;
|
|
2199
|
+
return next;
|
|
2200
|
+
});
|
|
2201
|
+
}, []);
|
|
2202
|
+
const handleTurnstileError = React.useCallback(() => {
|
|
2203
|
+
setTurnstileToken(null);
|
|
2204
|
+
setErrors(prev => ({ ...prev, _turnstile: 'Verification failed. Please try again.' }));
|
|
2205
|
+
}, []);
|
|
2206
|
+
const handleTurnstileExpire = React.useCallback(() => {
|
|
2207
|
+
setTurnstileToken(null);
|
|
2208
|
+
setErrors(prev => ({ ...prev, _turnstile: 'Verification expired. Please verify again.' }));
|
|
2209
|
+
}, []);
|
|
2191
2210
|
React.useEffect(() => {
|
|
2192
2211
|
if (!form) {
|
|
2193
2212
|
console.warn(`Form ${formId} not found`);
|
|
@@ -2360,23 +2379,7 @@ const MauticForm = ({ formId, title, description, className = '', form, onSubmit
|
|
|
2360
2379
|
return (jsxRuntimeExports.jsxs("form", { className: `mautic-form ${className}`, onSubmit: handleSubmit, children: [(title || form.name) && (jsxRuntimeExports.jsxs("div", { className: "form-header", children: [jsxRuntimeExports.jsx("h3", { children: title || form.name }), (description || form.description) && (jsxRuntimeExports.jsx("p", { className: "form-description", children: description || form.description }))] })), jsxRuntimeExports.jsx("div", { className: "form-fields", children: form.fields
|
|
2361
2380
|
// Filter out button/submit from field group; render them in actions
|
|
2362
2381
|
.filter((field) => field.type !== 'button' && field.alias !== 'submit')
|
|
2363
|
-
.map((field) => (jsxRuntimeExports.jsxs("div", { className: `form-field form-field-${field.type}`, children: [field.showLabel !== false && (jsxRuntimeExports.jsxs("label", { htmlFor: field.alias, className: "field-label", children: [field.label, field.isRequired && jsxRuntimeExports.jsx("span", { className: "required", children: "*" })] })), renderField(field), field.properties?.helpText && (jsxRuntimeExports.jsx("p", { className: "field-help", children: field.properties.helpText })), errors[field.alias] && (jsxRuntimeExports.jsx("p", { className: "field-error", children: errors[field.alias] }))] }, field.id))) }), turnstilesiteKey && (jsxRuntimeExports.jsxs("div", { className: "form-turnstile", children: [jsxRuntimeExports.jsx(TurnstileWidget, { siteKey: turnstilesiteKey, onSuccess: (
|
|
2364
|
-
setTurnstileToken(token);
|
|
2365
|
-
// Clear any turnstile error
|
|
2366
|
-
if (errors._turnstile) {
|
|
2367
|
-
setErrors(prev => {
|
|
2368
|
-
const next = { ...prev };
|
|
2369
|
-
delete next._turnstile;
|
|
2370
|
-
return next;
|
|
2371
|
-
});
|
|
2372
|
-
}
|
|
2373
|
-
}, onError: () => {
|
|
2374
|
-
setTurnstileToken(null);
|
|
2375
|
-
setErrors(prev => ({ ...prev, _turnstile: 'Verification failed. Please try again.' }));
|
|
2376
|
-
}, onExpire: () => {
|
|
2377
|
-
setTurnstileToken(null);
|
|
2378
|
-
setErrors(prev => ({ ...prev, _turnstile: 'Verification expired. Please verify again.' }));
|
|
2379
|
-
}, theme: "auto", size: "normal" }), errors._turnstile && (jsxRuntimeExports.jsx("p", { className: "field-error turnstile-error", children: errors._turnstile }))] })), jsxRuntimeExports.jsx("div", { className: "form-actions", children: jsxRuntimeExports.jsx("button", { type: "submit", disabled: isSubmitting || (!!turnstilesiteKey && !turnstileToken), className: "submit-button", children: isSubmitting ? 'Submitting...' : 'Submit' }) }), submitMutation.error && (jsxRuntimeExports.jsx("div", { className: "form-error", children: jsxRuntimeExports.jsx("p", { children: "There was an error submitting the form. Please try again." }) }))] }));
|
|
2382
|
+
.map((field) => (jsxRuntimeExports.jsxs("div", { className: `form-field form-field-${field.type}`, children: [field.showLabel !== false && (jsxRuntimeExports.jsxs("label", { htmlFor: field.alias, className: "field-label", children: [field.label, field.isRequired && jsxRuntimeExports.jsx("span", { className: "required", children: "*" })] })), renderField(field), field.properties?.helpText && (jsxRuntimeExports.jsx("p", { className: "field-help", children: field.properties.helpText })), errors[field.alias] && (jsxRuntimeExports.jsx("p", { className: "field-error", children: errors[field.alias] }))] }, field.id))) }), turnstilesiteKey && (jsxRuntimeExports.jsxs("div", { className: "form-turnstile", children: [jsxRuntimeExports.jsx(TurnstileWidget, { siteKey: turnstilesiteKey, onSuccess: handleTurnstileSuccess, onError: handleTurnstileError, onExpire: handleTurnstileExpire, theme: "auto", size: "normal" }), errors._turnstile && (jsxRuntimeExports.jsx("p", { className: "field-error turnstile-error", children: errors._turnstile }))] })), jsxRuntimeExports.jsx("div", { className: "form-actions", children: jsxRuntimeExports.jsx("button", { type: "submit", disabled: isSubmitting || (!!turnstilesiteKey && !turnstileToken), className: "submit-button", children: isSubmitting ? 'Submitting...' : 'Submit' }) }), submitMutation.error && (jsxRuntimeExports.jsx("div", { className: "form-error", children: jsxRuntimeExports.jsx("p", { children: "There was an error submitting the form. Please try again." }) }))] }));
|
|
2380
2383
|
};
|
|
2381
2384
|
|
|
2382
2385
|
const MauticTracking = ({ enabled, mauticUrl, proxyUrl, children }) => {
|