@sonordev/site-kit 1.3.3 → 1.3.5
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/AnalyticsProvider-SC4YOBFI.js +25 -0
- package/dist/{AnalyticsProvider-PIUZBIOK.js.map → AnalyticsProvider-SC4YOBFI.js.map} +1 -1
- package/dist/AnalyticsProvider-ZVZ2SNZR.mjs +4 -0
- package/dist/{AnalyticsProvider-FX5TLRQC.mjs.map → AnalyticsProvider-ZVZ2SNZR.mjs.map} +1 -1
- package/dist/EngageWidget-RWBCI4RM.mjs +4 -0
- package/dist/{EngageWidget-R7YFQBS5.mjs.map → EngageWidget-RWBCI4RM.mjs.map} +1 -1
- package/dist/EngageWidget-T2S5WUMJ.js +13 -0
- package/dist/{EngageWidget-I4AZTKFY.js.map → EngageWidget-T2S5WUMJ.js.map} +1 -1
- package/dist/SitemapSync-6I5JTLER.js +13 -0
- package/dist/{SitemapSync-4FRADGXF.js.map → SitemapSync-6I5JTLER.js.map} +1 -1
- package/dist/SitemapSync-6L45DHRH.mjs +4 -0
- package/dist/{SitemapSync-IJRJ32Y3.mjs.map → SitemapSync-6L45DHRH.mjs.map} +1 -1
- package/dist/analytics/index.d.mts +6 -1
- package/dist/analytics/index.d.ts +6 -1
- package/dist/analytics/index.js +19 -69
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +2 -67
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/{chunk-NZHVGBAF.js → chunk-5DAALKHB.js} +5 -5
- package/dist/{chunk-NZHVGBAF.js.map → chunk-5DAALKHB.js.map} +1 -1
- package/dist/chunk-AU4GIQQU.mjs +69 -0
- package/dist/chunk-AU4GIQQU.mjs.map +1 -0
- package/dist/{chunk-3QQDXQJE.js → chunk-DK2WNYQA.js} +7 -7
- package/dist/chunk-DK2WNYQA.js.map +1 -0
- package/dist/{chunk-TK76624B.mjs → chunk-FP66BKW6.mjs} +6 -3
- package/dist/chunk-FP66BKW6.mjs.map +1 -0
- package/dist/chunk-FRN4JQXL.js +72 -0
- package/dist/chunk-FRN4JQXL.js.map +1 -0
- package/dist/{chunk-JAXKHEOM.js → chunk-GTLIGQDM.js} +6 -2
- package/dist/chunk-GTLIGQDM.js.map +1 -0
- package/dist/{chunk-EGZEZR2I.mjs → chunk-HNCSTGVK.mjs} +3 -4
- package/dist/chunk-HNCSTGVK.mjs.map +1 -0
- package/dist/{chunk-6YXRLC6W.mjs → chunk-IZZ7XJYN.mjs} +184 -3
- package/dist/chunk-IZZ7XJYN.mjs.map +1 -0
- package/dist/{chunk-TLHRV3LZ.js → chunk-KYNUBF64.js} +184 -2
- package/dist/chunk-KYNUBF64.js.map +1 -0
- package/dist/{chunk-5TTTX6NN.mjs → chunk-RNOXXICL.mjs} +5 -5
- package/dist/{chunk-5TTTX6NN.mjs.map → chunk-RNOXXICL.mjs.map} +1 -1
- package/dist/{chunk-JB6I5PYV.js → chunk-V2WSPLCN.js} +2 -4
- package/dist/chunk-V2WSPLCN.js.map +1 -0
- package/dist/{chunk-GADRLCYH.mjs → chunk-VZMRZQ2D.mjs} +7 -7
- package/dist/chunk-VZMRZQ2D.mjs.map +1 -0
- package/dist/{chunk-W2TZYAUL.mjs → chunk-WW2DKGBM.mjs} +3 -4
- package/dist/chunk-WW2DKGBM.mjs.map +1 -0
- package/dist/{chunk-UOBK3SSF.js → chunk-YBQT623Y.js} +2 -4
- package/dist/chunk-YBQT623Y.js.map +1 -0
- package/dist/commerce/index.d.mts +11 -4
- package/dist/commerce/index.d.ts +11 -4
- package/dist/commerce/index.js +48 -42
- package/dist/commerce/index.mjs +3 -1
- package/dist/commerce/server.d.mts +1 -1
- package/dist/commerce/server.d.ts +1 -1
- package/dist/engage/index.d.mts +35 -2
- package/dist/engage/index.d.ts +35 -2
- package/dist/engage/index.js +32 -5
- package/dist/engage/index.js.map +1 -1
- package/dist/engage/index.mjs +30 -1
- package/dist/engage/index.mjs.map +1 -1
- package/dist/forms/index.js +20 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/index.mjs +20 -1
- package/dist/forms/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +45 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -5
- package/dist/index.mjs.map +1 -1
- package/dist/layout/client.js +2 -2
- package/dist/layout/client.mjs +1 -1
- package/dist/layout/index.js +2 -2
- package/dist/layout/index.mjs +1 -1
- package/dist/seo/index.js +2 -2
- package/dist/seo/index.mjs +1 -1
- package/dist/sync/index.js +13 -19
- package/dist/sync/index.mjs +1 -1
- package/dist/{types-CGlnp43R.d.mts → types-CyUfjlzS.d.mts} +14 -1
- package/dist/{types-CGlnp43R.d.ts → types-CyUfjlzS.d.ts} +14 -1
- package/dist/{useEventModal-Dx1dItTJ.d.ts → useEventModal-CmPo7hkj.d.ts} +1 -1
- package/dist/{useEventModal-BVTx69XE.d.mts → useEventModal-shBjc8CK.d.mts} +1 -1
- package/package.json +1 -1
- package/dist/AnalyticsProvider-FX5TLRQC.mjs +0 -4
- package/dist/AnalyticsProvider-PIUZBIOK.js +0 -21
- package/dist/EngageWidget-I4AZTKFY.js +0 -13
- package/dist/EngageWidget-R7YFQBS5.mjs +0 -4
- package/dist/SitemapSync-4FRADGXF.js +0 -19
- package/dist/SitemapSync-IJRJ32Y3.mjs +0 -4
- package/dist/chunk-3QQDXQJE.js.map +0 -1
- package/dist/chunk-6YXRLC6W.mjs.map +0 -1
- package/dist/chunk-EGZEZR2I.mjs.map +0 -1
- package/dist/chunk-GADRLCYH.mjs.map +0 -1
- package/dist/chunk-JAXKHEOM.js.map +0 -1
- package/dist/chunk-JB6I5PYV.js.map +0 -1
- package/dist/chunk-TK76624B.mjs.map +0 -1
- package/dist/chunk-TLHRV3LZ.js.map +0 -1
- package/dist/chunk-UOBK3SSF.js.map +0 -1
- package/dist/chunk-W2TZYAUL.mjs.map +0 -1
package/dist/engage/index.d.ts
CHANGED
|
@@ -27,7 +27,40 @@ interface ChatWidgetProps {
|
|
|
27
27
|
apiUrl?: string;
|
|
28
28
|
/** Signal API base URL for direct AI chat (no Portal passthrough) */
|
|
29
29
|
signalUrl?: string;
|
|
30
|
+
/** Clickable question chips shown in the welcome screen before the first message */
|
|
31
|
+
suggested_questions?: string[];
|
|
32
|
+
/** Name shown in the chat header for the AI assistant (overrides API config) */
|
|
33
|
+
assistant_name?: string;
|
|
34
|
+
/** Welcome message shown when chat first opens (overrides API config) */
|
|
35
|
+
welcome_message?: string;
|
|
36
|
+
/** Avatar URL for the assistant shown in the header */
|
|
37
|
+
assistant_avatar?: string;
|
|
30
38
|
}
|
|
31
|
-
declare function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, signalUrl: propSignalUrl }: ChatWidgetProps): react_jsx_runtime.JSX.Element;
|
|
39
|
+
declare function ChatWidget({ projectId: propProjectId, config, apiUrl: propApiUrl, signalUrl: propSignalUrl, suggested_questions: propSuggestedQuestions, assistant_name: propAssistantName, welcome_message: propWelcomeMessage, assistant_avatar: propAssistantAvatar }: ChatWidgetProps): react_jsx_runtime.JSX.Element;
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
/**
|
|
42
|
+
* @sonordev/site-kit/engage - Echo Public Configuration
|
|
43
|
+
*
|
|
44
|
+
* Helpers for configuring the ChatWidget with Echo-specific defaults
|
|
45
|
+
* for the Sonor public site (sonor.io).
|
|
46
|
+
*/
|
|
47
|
+
interface EchoPublicConfig {
|
|
48
|
+
signalUrl?: string;
|
|
49
|
+
welcomeMessage?: string;
|
|
50
|
+
suggestedQuestions?: string[];
|
|
51
|
+
brandColor?: string;
|
|
52
|
+
assistantName?: string;
|
|
53
|
+
assistantAvatar?: string;
|
|
54
|
+
}
|
|
55
|
+
declare const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig;
|
|
56
|
+
declare function getEchoWidgetProps(config?: EchoPublicConfig): {
|
|
57
|
+
signal_enabled: boolean;
|
|
58
|
+
signal_url: string | undefined;
|
|
59
|
+
welcome_message: string | undefined;
|
|
60
|
+
suggested_questions: string[] | undefined;
|
|
61
|
+
brand_color: string | undefined;
|
|
62
|
+
assistant_name: string | undefined;
|
|
63
|
+
assistant_avatar: string | undefined;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export { ChatConfig, ChatWidget, type EchoPublicConfig, EngageWidget, SONOR_PUBLIC_ECHO_DEFAULTS, getEchoWidgetProps };
|
package/dist/engage/index.js
CHANGED
|
@@ -1,22 +1,49 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkDK2WNYQA_js = require('../chunk-DK2WNYQA.js');
|
|
5
5
|
require('../chunk-ZSMWDLMK.js');
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// src/engage/echo-config.ts
|
|
8
|
+
var SONOR_PUBLIC_ECHO_DEFAULTS = {
|
|
9
|
+
signalUrl: "https://signal.sonor.io",
|
|
10
|
+
welcomeMessage: "Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?",
|
|
11
|
+
suggestedQuestions: [
|
|
12
|
+
"What does Sonor do?",
|
|
13
|
+
"How does Signal AI work?",
|
|
14
|
+
"What are the pricing plans?",
|
|
15
|
+
"Can I migrate from HubSpot?",
|
|
16
|
+
"How does the SEO module work?"
|
|
17
|
+
],
|
|
18
|
+
brandColor: "#14b8a6",
|
|
19
|
+
// teal-500
|
|
20
|
+
assistantName: "Echo"
|
|
21
|
+
};
|
|
22
|
+
function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
|
|
23
|
+
return {
|
|
24
|
+
signal_enabled: true,
|
|
25
|
+
signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,
|
|
26
|
+
welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,
|
|
27
|
+
suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,
|
|
28
|
+
brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,
|
|
29
|
+
assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,
|
|
30
|
+
assistant_avatar: config.assistantAvatar
|
|
31
|
+
};
|
|
32
|
+
}
|
|
8
33
|
|
|
9
34
|
Object.defineProperty(exports, "ChatWidget", {
|
|
10
35
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
36
|
+
get: function () { return chunkDK2WNYQA_js.ChatWidget; }
|
|
12
37
|
});
|
|
13
38
|
Object.defineProperty(exports, "DesignRenderer", {
|
|
14
39
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunkDK2WNYQA_js.DesignRenderer; }
|
|
16
41
|
});
|
|
17
42
|
Object.defineProperty(exports, "EngageWidget", {
|
|
18
43
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkDK2WNYQA_js.EngageWidget; }
|
|
20
45
|
});
|
|
46
|
+
exports.SONOR_PUBLIC_ECHO_DEFAULTS = SONOR_PUBLIC_ECHO_DEFAULTS;
|
|
47
|
+
exports.getEchoWidgetProps = getEchoWidgetProps;
|
|
21
48
|
//# sourceMappingURL=index.js.map
|
|
22
49
|
//# sourceMappingURL=index.js.map
|
package/dist/engage/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#14b8a6', // teal-500\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
|
package/dist/engage/index.mjs
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { ChatWidget, DesignRenderer, EngageWidget } from '../chunk-
|
|
2
|
+
export { ChatWidget, DesignRenderer, EngageWidget } from '../chunk-VZMRZQ2D.mjs';
|
|
3
3
|
import '../chunk-4XPGGLVP.mjs';
|
|
4
|
+
|
|
5
|
+
// src/engage/echo-config.ts
|
|
6
|
+
var SONOR_PUBLIC_ECHO_DEFAULTS = {
|
|
7
|
+
signalUrl: "https://signal.sonor.io",
|
|
8
|
+
welcomeMessage: "Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?",
|
|
9
|
+
suggestedQuestions: [
|
|
10
|
+
"What does Sonor do?",
|
|
11
|
+
"How does Signal AI work?",
|
|
12
|
+
"What are the pricing plans?",
|
|
13
|
+
"Can I migrate from HubSpot?",
|
|
14
|
+
"How does the SEO module work?"
|
|
15
|
+
],
|
|
16
|
+
brandColor: "#14b8a6",
|
|
17
|
+
// teal-500
|
|
18
|
+
assistantName: "Echo"
|
|
19
|
+
};
|
|
20
|
+
function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
|
|
21
|
+
return {
|
|
22
|
+
signal_enabled: true,
|
|
23
|
+
signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,
|
|
24
|
+
welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,
|
|
25
|
+
suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,
|
|
26
|
+
brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,
|
|
27
|
+
assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,
|
|
28
|
+
assistant_avatar: config.assistantAvatar
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { SONOR_PUBLIC_ECHO_DEFAULTS, getEchoWidgetProps };
|
|
4
33
|
//# sourceMappingURL=index.mjs.map
|
|
5
34
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#14b8a6', // teal-500\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
|
package/dist/forms/index.js
CHANGED
|
@@ -154,7 +154,26 @@ function useFormTracking({
|
|
|
154
154
|
if (!response.ok) {
|
|
155
155
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
156
156
|
}
|
|
157
|
-
if (debug) console.log("[Forms] Form completed
|
|
157
|
+
if (debug) console.log("[Forms] Form completed, recording conversion");
|
|
158
|
+
try {
|
|
159
|
+
await fetch(`${apiUrl}/api/public/analytics/conversion`, {
|
|
160
|
+
method: "POST",
|
|
161
|
+
headers: {
|
|
162
|
+
"Content-Type": "application/json",
|
|
163
|
+
"x-api-key": apiKey
|
|
164
|
+
},
|
|
165
|
+
body: JSON.stringify({
|
|
166
|
+
sessionId: sessionIdRef.current,
|
|
167
|
+
conversionType: "form_submission",
|
|
168
|
+
metadata: { formId, analyticsId: analyticsIdRef.current },
|
|
169
|
+
pagePath: typeof window !== "undefined" ? window.location.pathname : "/",
|
|
170
|
+
referrer: typeof document !== "undefined" ? document.referrer || null : null,
|
|
171
|
+
deviceType: getDeviceType()
|
|
172
|
+
})
|
|
173
|
+
});
|
|
174
|
+
} catch (convErr) {
|
|
175
|
+
if (debug) console.error("[Forms] Error recording conversion:", convErr);
|
|
176
|
+
}
|
|
158
177
|
} catch (error) {
|
|
159
178
|
if (debug) console.error("[Forms] Error completing tracking:", error);
|
|
160
179
|
}
|