@envive-ai/react-hooks 0.2.6-alpha-4 → 0.2.6-alpha-6

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.
Files changed (225) hide show
  1. package/dist/{AmplitudeOperations-Dpp91XWV.js → AmplitudeOperations-CaA5jTCq.js} +2 -2
  2. package/dist/{AmplitudeOperations-BEhMCOtx.cjs → AmplitudeOperations-CufFJLkn.cjs} +3 -3
  3. package/dist/{NewOrgConfig-Cx3R7FM6.js → NewOrgConfig-BnLPlU6Z.js} +2 -2
  4. package/dist/{NewOrgConfig-DRs9Sk4E.cjs → NewOrgConfig-CKHO6QW_.cjs} +2 -2
  5. package/dist/{TrackComponentVisibleEvent-OAFP4CZ6.cjs → TrackComponentVisibleEvent-BvrgpJuY.cjs} +4 -4
  6. package/dist/{TrackComponentVisibleEvent-CIfRZtFq.js → TrackComponentVisibleEvent-CKELFJhI.js} +3 -3
  7. package/dist/amplitudeContext-Bh4SVVse.js +227 -0
  8. package/dist/amplitudeContext-CjFkl5yr.cjs +243 -0
  9. package/dist/amplitudeTrackEventAtom-D66l5oFp.js +8 -0
  10. package/dist/amplitudeTrackEventAtom-f22P2U0u.cjs +15 -0
  11. package/dist/app-CrmrUsr6.js +514 -0
  12. package/dist/app-DudAJOe4.cjs +569 -0
  13. package/dist/application/models/graphql/index.d.ts +1 -1
  14. package/dist/application/models/guards/api/index.d.ts +2 -2
  15. package/dist/application/models/guards/utils.d.ts +1 -1
  16. package/dist/application/models/index.d.cts +1 -1
  17. package/dist/application/models/index.d.ts +4 -4
  18. package/dist/application/utils/index.cjs +3 -12
  19. package/dist/application/utils/index.d.cts +5 -6
  20. package/dist/application/utils/index.d.ts +8 -9
  21. package/dist/application/utils/index.js +3 -12
  22. package/dist/atoms/app/index.cjs +13 -15
  23. package/dist/atoms/app/index.d.cts +7 -7
  24. package/dist/atoms/app/index.d.ts +6 -6
  25. package/dist/atoms/app/index.js +8 -10
  26. package/dist/atoms/atomStore/index.d.cts +1 -1
  27. package/dist/atoms/chat/index.cjs +11 -13
  28. package/dist/atoms/chat/index.d.cts +33 -34
  29. package/dist/atoms/chat/index.d.ts +34 -35
  30. package/dist/atoms/chat/index.js +11 -13
  31. package/dist/atoms/globalSearch/index.cjs +1 -1
  32. package/dist/atoms/globalSearch/index.d.cts +6 -6
  33. package/dist/atoms/globalSearch/index.d.ts +1 -1
  34. package/dist/atoms/globalSearch/index.js +1 -1
  35. package/dist/atoms/org/index.cjs +2 -2
  36. package/dist/atoms/org/index.d.cts +16 -16
  37. package/dist/atoms/org/index.d.ts +1 -1
  38. package/dist/atoms/org/index.js +2 -2
  39. package/dist/atoms/search/index.cjs +5 -5
  40. package/dist/atoms/search/index.d.cts +14 -14
  41. package/dist/atoms/search/index.d.ts +14 -14
  42. package/dist/atoms/search/index.js +5 -5
  43. package/dist/atoms/search/utils.cjs +1 -1
  44. package/dist/atoms/search/utils.js +1 -1
  45. package/dist/{cdnContext-KMAzFHrZ.cjs → cdnContext-B9s1XSTE.cjs} +2 -2
  46. package/dist/{cdnContext-BJZSYlsP.js → cdnContext-BKQT9bPr.js} +2 -2
  47. package/dist/{chat-yICI8tzz.cjs → chat-B87y65R0.cjs} +4 -5
  48. package/dist/chat-DfVncvc2.js +226 -0
  49. package/dist/chatState-AYi1RPOJ.js +33 -0
  50. package/dist/{chatState-BRYkF2g2.cjs → chatState-COd-Dczh.cjs} +3 -4
  51. package/dist/config/index.d.cts +4 -4
  52. package/dist/config/index.d.ts +4 -4
  53. package/dist/config/locators/components/chat/index.d.cts +1 -1
  54. package/dist/config/locators/components/chat/index.d.ts +1 -1
  55. package/dist/config/locators/components/common/index.d.cts +1 -1
  56. package/dist/config/locators/components/common/index.d.ts +1 -1
  57. package/dist/config/locators/components/index.d.cts +1 -1
  58. package/dist/config/locators/components/index.d.ts +1 -1
  59. package/dist/config/locators/index.d.cts +4 -4
  60. package/dist/config/locators/index.d.ts +4 -4
  61. package/dist/contexts/amplitudeContext/index.cjs +13 -12
  62. package/dist/contexts/amplitudeContext/index.d.cts +11 -2
  63. package/dist/contexts/amplitudeContext/index.d.ts +11 -2
  64. package/dist/contexts/amplitudeContext/index.js +12 -10
  65. package/dist/contexts/cdnContext/index.cjs +2 -2
  66. package/dist/contexts/cdnContext/index.js +2 -2
  67. package/dist/contexts/enviveConfigContext/index.cjs +2 -2
  68. package/dist/contexts/enviveConfigContext/index.js +2 -2
  69. package/dist/contexts/enviveCssContext/index.cjs +8 -8
  70. package/dist/contexts/enviveCssContext/index.js +8 -8
  71. package/dist/contexts/featureFlagContext/index.cjs +3 -3
  72. package/dist/contexts/featureFlagContext/index.js +3 -3
  73. package/dist/contexts/featureFlagServiceContext/index.cjs +2 -2
  74. package/dist/contexts/featureFlagServiceContext/index.d.cts +1 -1
  75. package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -1
  76. package/dist/contexts/featureFlagServiceContext/index.js +2 -2
  77. package/dist/contexts/graphqlContext/index.cjs +2 -2
  78. package/dist/contexts/graphqlContext/index.d.cts +1 -1
  79. package/dist/contexts/graphqlContext/index.js +2 -2
  80. package/dist/contexts/localStorageContext/index.cjs +1 -1
  81. package/dist/contexts/localStorageContext/index.js +1 -1
  82. package/dist/contexts/newOrgConfigContext/index.cjs +7 -7
  83. package/dist/contexts/newOrgConfigContext/index.d.cts +1 -1
  84. package/dist/contexts/newOrgConfigContext/index.js +7 -7
  85. package/dist/contexts/searchContext/index.cjs +14 -15
  86. package/dist/contexts/searchContext/index.js +14 -15
  87. package/dist/contexts/sessionStorageContext/index.cjs +1 -1
  88. package/dist/contexts/sessionStorageContext/index.js +1 -1
  89. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  90. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  91. package/dist/contexts/systemSettingsContext/index.cjs +2 -2
  92. package/dist/contexts/systemSettingsContext/index.d.cts +2 -2
  93. package/dist/contexts/systemSettingsContext/index.d.ts +2 -2
  94. package/dist/contexts/systemSettingsContext/index.js +2 -2
  95. package/dist/contexts/userIdentityContext/index.cjs +10 -12
  96. package/dist/contexts/userIdentityContext/index.js +8 -10
  97. package/dist/{domObserver-B19-69gW.js → domObserver-CVhsCSkS.js} +1 -1
  98. package/dist/{domObserver-CwieVNgj.cjs → domObserver-LCBj1xw4.cjs} +1 -1
  99. package/dist/{enviveConfig-u50Rpz-G.cjs → enviveConfig-D3hmiaPh.cjs} +1 -1
  100. package/dist/{enviveConfig-Be2kZE7j.js → enviveConfig-DyvNVrxm.js} +1 -1
  101. package/dist/{enviveConfigContext-kQfHEGdJ.cjs → enviveConfigContext-BADXcRZr.cjs} +2 -2
  102. package/dist/{enviveConfigContext-1oiQuocd.js → enviveConfigContext-D8ijWYZf.js} +2 -2
  103. package/dist/{featureFlagServiceContext-B7je7VZV.d.cts → featureFlagServiceContext-ClnlCJV5.d.cts} +1 -1
  104. package/dist/{featureFlagServiceContext-DiYIv0jI.d.ts → featureFlagServiceContext-CyPGEe2d.d.ts} +1 -1
  105. package/dist/{featureFlagServiceContext-pPneufeB.cjs → featureFlagServiceContext-DQYo0d6Q.cjs} +1 -1
  106. package/dist/{featureFlagServiceContext-CPsygiHO.js → featureFlagServiceContext-GIO9xKV0.js} +1 -1
  107. package/dist/{globalSearch-OiF96VLG.cjs → globalSearch-Cpc8egsM.cjs} +1 -1
  108. package/dist/{globalSearch-B_v9qfCT.js → globalSearch-nmrfGLOn.js} +1 -1
  109. package/dist/{graphqlContext-BVFRNIdi.cjs → graphqlContext-BXdtsubh.cjs} +2 -2
  110. package/dist/{graphqlContext-D_Wp0LEl.js → graphqlContext-i_3n2qoK.js} +2 -2
  111. package/dist/hooks/AmplitudeOperations/index.cjs +12 -10
  112. package/dist/hooks/AmplitudeOperations/index.js +12 -10
  113. package/dist/hooks/AppDetails/index.cjs +11 -13
  114. package/dist/hooks/AppDetails/index.js +11 -13
  115. package/dist/hooks/CdnOperations/index.cjs +2 -2
  116. package/dist/hooks/CdnOperations/index.d.ts +1 -1
  117. package/dist/hooks/CdnOperations/index.js +2 -2
  118. package/dist/hooks/ChatToggle/index.cjs +16 -14
  119. package/dist/hooks/ChatToggle/index.js +15 -13
  120. package/dist/hooks/ChatToggleAnalytics/index.cjs +14 -12
  121. package/dist/hooks/ChatToggleAnalytics/index.js +14 -12
  122. package/dist/hooks/ElementObserver/index.cjs +1 -1
  123. package/dist/hooks/ElementObserver/index.d.cts +1 -1
  124. package/dist/hooks/ElementObserver/index.d.ts +1 -1
  125. package/dist/hooks/ElementObserver/index.js +1 -1
  126. package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
  127. package/dist/hooks/GrabAndScroll/index.d.ts +2 -2
  128. package/dist/hooks/GraphQLConfig/index.cjs +3 -3
  129. package/dist/hooks/GraphQLConfig/index.js +3 -3
  130. package/dist/hooks/IdentifyUser/index.cjs +10 -12
  131. package/dist/hooks/IdentifyUser/index.d.ts +1 -1
  132. package/dist/hooks/IdentifyUser/index.js +9 -11
  133. package/dist/hooks/ImageResolver/index.cjs +1 -1
  134. package/dist/hooks/ImageResolver/index.js +1 -1
  135. package/dist/hooks/Intersection/index.cjs +1 -1
  136. package/dist/hooks/Intersection/index.js +1 -1
  137. package/dist/hooks/LocalStorageOperations/index.cjs +1 -1
  138. package/dist/hooks/LocalStorageOperations/index.js +1 -1
  139. package/dist/hooks/NewOrgConfig/index.cjs +8 -8
  140. package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
  141. package/dist/hooks/NewOrgConfig/index.d.ts +2 -2
  142. package/dist/hooks/NewOrgConfig/index.js +8 -8
  143. package/dist/hooks/Search/index.cjs +19 -17
  144. package/dist/hooks/Search/index.js +19 -17
  145. package/dist/hooks/SearchOperations/index.cjs +15 -16
  146. package/dist/hooks/SearchOperations/index.js +15 -16
  147. package/dist/hooks/SessionStorageOperations/index.cjs +1 -1
  148. package/dist/hooks/SessionStorageOperations/index.js +1 -1
  149. package/dist/hooks/ShopifyUrlOperations/index.cjs +2 -2
  150. package/dist/hooks/ShopifyUrlOperations/index.js +2 -2
  151. package/dist/hooks/SystemSettingsContext/index.cjs +2 -2
  152. package/dist/hooks/SystemSettingsContext/index.d.cts +2 -2
  153. package/dist/hooks/SystemSettingsContext/index.d.ts +4 -4
  154. package/dist/hooks/SystemSettingsContext/index.js +2 -2
  155. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +13 -11
  156. package/dist/hooks/TrackComponentVisibleEvent/index.js +13 -11
  157. package/dist/hooks/UpdateAnalyticsProps/index.cjs +15 -13
  158. package/dist/hooks/UpdateAnalyticsProps/index.js +12 -10
  159. package/dist/{index-CAhGZxMI.d.ts → index-5li6ZMDu.d.ts} +1 -1
  160. package/dist/{index-ca7Qn8o0.d.cts → index-BbqT4BQv.d.cts} +1 -1
  161. package/dist/{index-w64il54a.d.cts → index-CAJq_8bO.d.cts} +1 -1
  162. package/dist/{index-BQpWG3Jm.d.cts → index-ChiZg0yw.d.cts} +1 -1
  163. package/dist/{index-DNccxbJi.d.ts → index-CsmO1rDH.d.ts} +1 -1
  164. package/dist/{index-Dgu085Lu.d.ts → index-CuihhoIF.d.ts} +2 -2
  165. package/dist/{index-BR1G8yyg.d.ts → index-DtzPIcQp.d.ts} +1 -1
  166. package/dist/{index-ZQMda2Iu.d.ts → index-bEjLKG_Q.d.ts} +1 -1
  167. package/dist/{index-DiIHuPq2.d.ts → index-jFQefHda.d.ts} +1 -1
  168. package/dist/{index-BO-ZLYtR.d.ts → index-mv7KvWDq.d.ts} +1 -1
  169. package/dist/{index-ClVBVK15.d.cts → index-npqPeJ1g.d.cts} +1 -1
  170. package/dist/interceptors/index.d.ts +1 -1
  171. package/dist/{localStorageContext-Bb2b_3ue.cjs → localStorageContext-CMQMTX56.cjs} +1 -1
  172. package/dist/{localStorageContext-D2uXKahw.js → localStorageContext-znToxGBM.js} +1 -1
  173. package/dist/{newOrgConfigAtom-Dsk0fJNR.js → newOrgConfigAtom-CKuuohFM.js} +1 -1
  174. package/dist/{newOrgConfigAtom-hs5A1pbZ.cjs → newOrgConfigAtom-Cy66eryV.cjs} +1 -1
  175. package/dist/{newOrgConfigContext-Dn9l1f9w.js → newOrgConfigContext-UdjemITl.js} +5 -5
  176. package/dist/{newOrgConfigContext-DkBvmY0p.cjs → newOrgConfigContext-kCipbRua.cjs} +5 -5
  177. package/dist/{nodeSelector-0gJ8Xayf.d.ts → nodeSelector-BAKg1h_y.d.ts} +1 -1
  178. package/dist/{nodeSelector-Cj-Xl1LP.d.cts → nodeSelector-BYEAyrsj.d.cts} +1 -1
  179. package/dist/org-D_QTp1ex.js +32 -0
  180. package/dist/org-DnpLYVzD.cjs +111 -0
  181. package/dist/{search-jNTQGSyl.js → search-CP6Tnjsb.js} +4 -4
  182. package/dist/{search-D-BGpGJt.cjs → search-JN-IYDIE.cjs} +4 -4
  183. package/dist/{searchContext-C75BHjlY.cjs → searchContext-BrymLMqU.cjs} +5 -5
  184. package/dist/{searchContext-DjcqQsxp.js → searchContext-CgXwm6aL.js} +5 -5
  185. package/dist/{searchServiceAdapter-BSPZOg1r.js → searchServiceAdapter-B0h7psvh.js} +1 -1
  186. package/dist/{searchServiceAdapter-DrjFCiw8.cjs → searchServiceAdapter-BclWy4fE.cjs} +1 -1
  187. package/dist/{sessionStorageContext-ByaTsDUC.cjs → sessionStorageContext-BuWrJQwc.cjs} +1 -1
  188. package/dist/{sessionStorageContext-DKE97oMv.js → sessionStorageContext-DvFHbk81.js} +1 -1
  189. package/dist/{shopifyUrlContext-Ba6MQdNV.cjs → shopifyUrlContext-COc1eDR_.cjs} +2 -2
  190. package/dist/{shopifyUrlContext-BI3fVtA5.js → shopifyUrlContext-CToAt_98.js} +2 -2
  191. package/dist/{systemSettingsContext-DTdzjE_O.js → systemSettingsContext-B8a7vEqE.js} +2 -2
  192. package/dist/{systemSettingsContext-CSXsgBiG.cjs → systemSettingsContext-D-4ma13L.cjs} +2 -2
  193. package/dist/types/index.d.ts +1 -1
  194. package/dist/{urlsParser-C-Vzs--G.cjs → urlsParser-Dax4iVNC.cjs} +1 -1
  195. package/dist/{urlsParser-G7Ocwg0M.js → urlsParser-NAp2LwWP.js} +1 -1
  196. package/dist/{useAppDetails-Cq8TbvkX.cjs → useAppDetails-BkTsIODv.cjs} +7 -7
  197. package/dist/{useAppDetails-DjdYWTqz.js → useAppDetails-HS5GtU5O.js} +4 -4
  198. package/dist/{useGraphQLConfig-Dy0ml9xw.cjs → useGraphQLConfig-DCd-kR81.cjs} +2 -2
  199. package/dist/{useGraphQLConfig-nY5CE8kj.js → useGraphQLConfig-arTbYTKS.js} +2 -2
  200. package/dist/{useIntersection-BQMfiS4x.cjs → useIntersection-BcBCa890.cjs} +1 -1
  201. package/dist/{useIntersection-D-ol9eH8.js → useIntersection-BkMkuJcZ.js} +1 -1
  202. package/dist/{utils-sosM0bEk.d.ts → utils-BitIIghf.d.ts} +1 -1
  203. package/dist/{utils-BBICrPjW.cjs → utils-CqVRbvfN.cjs} +1 -1
  204. package/dist/utils-CxDOv-yL.js +607 -0
  205. package/dist/{utils-w4-xONRA.js → utils-DQhbbAnt.js} +1 -1
  206. package/dist/utils-DucG4gQ7.cjs +716 -0
  207. package/package.json +2 -2
  208. package/src/application/commerce-api.ts +2 -0
  209. package/src/application/utils/analyticsUtils.ts +31 -16
  210. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -1
  211. package/src/atoms/chat/chatState.ts +12 -7
  212. package/src/atoms/chat/replies.ts +42 -40
  213. package/src/contexts/amplitudeContext/amplitudeContext.tsx +116 -130
  214. package/dist/amplitudeContext-CMTvCsJC.d.ts +0 -52
  215. package/dist/amplitudeContext-ZkerrMUa.d.cts +0 -52
  216. package/dist/amplitudeTrackEventAtom-BBkB1LPQ.cjs +0 -15
  217. package/dist/amplitudeTrackEventAtom-yP38BuDB.js +0 -8
  218. package/dist/chat-DYD6B6em.js +0 -227
  219. package/dist/chatState-DRKB9bqM.js +0 -34
  220. package/dist/org-C2kLSSe9.cjs +0 -111
  221. package/dist/org-CIczyLRP.js +0 -32
  222. package/dist/utils-DqNhRm2b.cjs +0 -1546
  223. package/dist/utils-IogJwDB9.js +0 -1364
  224. /package/dist/{featureFlagServiceContext-DgoR6euC.js → featureFlagServiceContext-CISyb90N.js} +0 -0
  225. /package/dist/{featureFlagServiceContext-b-rYgf0u.cjs → featureFlagServiceContext-Csgo-MUv.cjs} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envive-ai/react-hooks",
3
- "version": "0.2.6-alpha-4",
3
+ "version": "0.2.6-alpha-6",
4
4
  "description": "React hooks for connecting to Envive AI services.",
5
5
  "keywords": [
6
6
  "react",
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "@amplitude/analytics-browser": "^2.23.7",
38
38
  "@envive-ai/react-icons": "^0.1.1",
39
- "@spiffy-ai/commerce-api-client": "1.1.0-SNAPSHOT.202508291501",
39
+ "@spiffy-ai/commerce-api-client": "1.1.0-SNAPSHOT.202510160819",
40
40
  "fuse.js": "^7.1.0",
41
41
  "jotai": "^2.14.0",
42
42
  "react-icons": "^5.5.0",
@@ -545,6 +545,8 @@ class CommerceApiClient {
545
545
  return V1OrgConfigGetSourceEnum.App;
546
546
  case ContextSourceEnum.Test:
547
547
  return V1OrgConfigGetSourceEnum.Test;
548
+ case ContextSourceEnum.Eval:
549
+ return V1OrgConfigGetSourceEnum.Test;
548
550
  default: {
549
551
  // This ensures that if new values are added to ContextSourceEnum, we catch it
550
552
  const exhaustiveCheck: never = source;
@@ -1,13 +1,12 @@
1
- import Logger from 'src/application/logging/logger';
1
+ import Logger from "src/application/logging/logger";
2
2
  import {
3
3
  isLegacyUAEcommerceEvent,
4
4
  isGA4EcommerceEvent,
5
5
  isBaseEcommerceEvent,
6
- } from 'src/application/models';
7
- import { BaseEcommerceEvent } from '@envive-ai/types';
8
- import { SpiffyMetricsEventName } from 'src/contexts/amplitudeContext/amplitudeContext';
6
+ } from "src/application/models";
7
+ import { BaseEcommerceEvent, SpiffyMetricsEventName } from "@envive-ai/types";
9
8
 
10
- const NORMALIZED_ADD_TO_CART_EVENT_NAMES = ['addtocart', 'addedtocart'];
9
+ const NORMALIZED_ADD_TO_CART_EVENT_NAMES = ["addtocart", "addedtocart"];
11
10
  const CHECK_DATA_LAYER_INTERVAL_MS = 500;
12
11
  const CHECK_DATA_LAYER_MAX_ATTEMPTS = 10;
13
12
 
@@ -19,8 +18,10 @@ const CHECK_DATA_LAYER_MAX_ATTEMPTS = 10;
19
18
  * @returns True if the event is an add_to_cart event, false otherwise.
20
19
  */
21
20
  const isAddToCartEvent = (event: string): boolean => {
22
- const normalizedEvent = event.replace(/[-_]/g, '').toLowerCase();
23
- return NORMALIZED_ADD_TO_CART_EVENT_NAMES.some((name) => normalizedEvent.includes(name));
21
+ const normalizedEvent = event.replace(/[-_]/g, "").toLowerCase();
22
+ return NORMALIZED_ADD_TO_CART_EVENT_NAMES.some((name) =>
23
+ normalizedEvent.includes(name)
24
+ );
24
25
  };
25
26
 
26
27
  /**
@@ -30,7 +31,10 @@ const isAddToCartEvent = (event: string): boolean => {
30
31
  */
31
32
  const handleAddToCartEvent = (
32
33
  event: BaseEcommerceEvent,
33
- track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void,
34
+ track: (
35
+ eventName: SpiffyMetricsEventName,
36
+ eventProps?: Record<string, unknown>
37
+ ) => void
34
38
  ) => {
35
39
  let eventProps: Record<string, unknown>;
36
40
 
@@ -43,7 +47,7 @@ const handleAddToCartEvent = (
43
47
  quantity: product.quantity,
44
48
  })),
45
49
  currency: event.ecommerce.add.currencyCode,
46
- event_format_version: 'legacy_universal_analytics',
50
+ event_format_version: "legacy_universal_analytics",
47
51
  };
48
52
  } else if (isGA4EcommerceEvent(event)) {
49
53
  eventProps = {
@@ -54,12 +58,12 @@ const handleAddToCartEvent = (
54
58
  quantity: item.quantity,
55
59
  })),
56
60
  currency: event.ecommerce.currency,
57
- event_format_version: 'google_analytics_4',
61
+ event_format_version: "google_analytics_4",
58
62
  };
59
63
  } else {
60
64
  eventProps = {
61
65
  event_properties: { ...event },
62
- event_format_version: 'unknown',
66
+ event_format_version: "unknown",
63
67
  };
64
68
  }
65
69
 
@@ -73,7 +77,10 @@ const handleAddToCartEvent = (
73
77
  * This function runs on an interval until the dataLayer is available.
74
78
  */
75
79
  export const initDataLayerWrapper = (
76
- track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void,
80
+ track: (
81
+ eventName: SpiffyMetricsEventName,
82
+ eventProps?: Record<string, unknown>
83
+ ) => void
77
84
  ) => {
78
85
  let attempts = 0;
79
86
 
@@ -85,7 +92,7 @@ export const initDataLayerWrapper = (
85
92
 
86
93
  if (attempts >= CHECK_DATA_LAYER_MAX_ATTEMPTS) {
87
94
  Logger.logDebug(
88
- `[spiffy-ai] dataLayer not available after ${CHECK_DATA_LAYER_MAX_ATTEMPTS} attempts`,
95
+ `[spiffy-ai] dataLayer not available after ${CHECK_DATA_LAYER_MAX_ATTEMPTS} attempts`
89
96
  );
90
97
  return;
91
98
  }
@@ -94,10 +101,15 @@ export const initDataLayerWrapper = (
94
101
  return;
95
102
  }
96
103
 
97
- Logger.logDebug('[spiffy-ai] dataLayer is available, wrapping push function...');
104
+ Logger.logDebug(
105
+ "[spiffy-ai] dataLayer is available, wrapping push function..."
106
+ );
98
107
  const originalPush = window.dataLayer.push;
99
108
  window.dataLayer.push = (...args: unknown[]) => {
100
- if (isBaseEcommerceEvent(args[0]) && isAddToCartEvent((args[0] as any).event)) {
109
+ if (
110
+ isBaseEcommerceEvent(args[0]) &&
111
+ isAddToCartEvent((args[0] as any).event)
112
+ ) {
101
113
  handleAddToCartEvent(args[0] as BaseEcommerceEvent, track);
102
114
  }
103
115
 
@@ -110,7 +122,10 @@ export const initDataLayerWrapper = (
110
122
  };
111
123
 
112
124
  export const initAmplitude = (
113
- track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void,
125
+ track: (
126
+ eventName: SpiffyMetricsEventName,
127
+ eventProps?: Record<string, unknown>
128
+ ) => void
114
129
  ) => {
115
130
  // This function might not be needed anymore if Amplitude is initialized via context.
116
131
  // For now, we'll keep it and pass the track function.
@@ -1,5 +1,5 @@
1
+ import { SpiffyMetricsEventName } from "@envive-ai/types";
1
2
  import { atom } from "jotai";
2
- import { SpiffyMetricsEventName } from "src/contexts/amplitudeContext/amplitudeContext";
3
3
 
4
4
  interface TrackEventParams {
5
5
  eventName: SpiffyMetricsEventName;
@@ -1,6 +1,5 @@
1
- import { UserEventCategory } from '@spiffy-ai/commerce-api-client/dist/models/UserEventCategory';
2
- import { atom } from 'jotai';
3
- import { SpiffyMetricsEventName } from 'src/contexts/amplitudeContext/amplitudeContext';
1
+ import { UserEventCategory } from "@spiffy-ai/commerce-api-client/dist/models/UserEventCategory";
2
+ import { atom } from "jotai";
4
3
  import {
5
4
  FormSubmittedAttributes,
6
5
  Message,
@@ -8,10 +7,13 @@ import {
8
7
  UserEvent,
9
8
  SpiffyEventName,
10
9
  ChatElementDisplayLocation,
11
- } from '@envive-ai/types';
10
+ SpiffyMetricsEventName,
11
+ } from "@envive-ai/types";
12
12
 
13
13
  export const userHasRepliedAtom = atom<boolean>(false);
14
- export const replyEventCategoryAtom = atom<UserEventCategory>(UserEventCategory.AppLoaded);
14
+ export const replyEventCategoryAtom = atom<UserEventCategory>(
15
+ UserEventCategory.AppLoaded
16
+ );
15
17
  export const userQueryAtom = atom<string>();
16
18
  export const suggestionAtom = atom<Suggestion | undefined>(undefined);
17
19
  export const askQuestionBtnClickedAtom = atom<boolean>(false);
@@ -29,7 +31,10 @@ export const chatOnToggleAtom = atom(
29
31
  get,
30
32
  set,
31
33
  triggerLocation?: ChatElementDisplayLocation,
32
- track?: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void,
34
+ track?: (
35
+ eventName: SpiffyMetricsEventName,
36
+ eventProps?: Record<string, unknown>
37
+ ) => void
33
38
  ) => {
34
39
  const isOpen = get(chatIsOpenAtom);
35
40
  set(chatIsOpenAtom, !isOpen);
@@ -45,5 +50,5 @@ export const chatOnToggleAtom = atom(
45
50
  window.dispatchEvent(new CustomEvent(SpiffyEventName.WidgetClose));
46
51
  track?.(SpiffyMetricsEventName.ChatComponentCollapsed);
47
52
  }
48
- },
53
+ }
49
54
  );
@@ -1,56 +1,58 @@
1
- import { atom } from 'jotai';
2
- import { Message, MessageType } from '@envive-ai/types';
1
+ import { atom } from "jotai";
2
+ import { Message, MessageType, SpiffyMetricsEventName } from "@envive-ai/types";
3
3
  import {
4
4
  userHasRepliedAtom,
5
5
  messagesAtom,
6
6
  userQueryAtom,
7
7
  replyEventCategoryAtom,
8
- } from 'src/atoms/chat';
9
- import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
10
- import { queueUserEventAtom } from './messageQueue';
11
- import { SpiffyMetricsEventName } from 'src/contexts/amplitudeContext/amplitudeContext';
12
- import { amplitudeTrackEventAtom } from 'src/atoms/amplitude/amplitudeTrackEventAtom';
8
+ } from "src/atoms/chat";
9
+ import { UserEventCategory } from "@spiffy-ai/commerce-api-client";
10
+ import { queueUserEventAtom } from "./messageQueue";
11
+ import { amplitudeTrackEventAtom } from "src/atoms/amplitude/amplitudeTrackEventAtom";
13
12
 
14
13
  type HandleReplyParams = {
15
14
  message: Message;
16
15
  userTyped: boolean;
17
16
  };
18
17
 
19
- export const handleReplyAtom = atom(null, (get, set, { message, userTyped }: HandleReplyParams) => {
20
- if (message.type !== MessageType.QueryTyped) {
21
- return;
22
- }
23
-
24
- const trackEvent = get(amplitudeTrackEventAtom);
25
- const queryTyped = message.metadata.content;
18
+ export const handleReplyAtom = atom(
19
+ null,
20
+ (get, set, { message, userTyped }: HandleReplyParams) => {
21
+ if (message.type !== MessageType.QueryTyped) {
22
+ return;
23
+ }
26
24
 
27
- set(replyEventCategoryAtom, UserEventCategory.QueryTyped);
28
- set(userQueryAtom, queryTyped);
29
- set(messagesAtom, [...get(messagesAtom), [message]]);
30
- set(userHasRepliedAtom, true);
31
- set(queueUserEventAtom, {
32
- eventId: message.id,
33
- createdAt: message.createdAt,
34
- category: UserEventCategory.QueryTyped,
35
- attributes: {
36
- query: queryTyped,
37
- },
38
- });
25
+ const trackEvent = get(amplitudeTrackEventAtom);
26
+ const queryTyped = message.metadata.content;
39
27
 
40
- if (trackEvent) {
41
- trackEvent({
42
- eventName: SpiffyMetricsEventName.ChatUserMessageInput,
43
- eventProps: {
44
- message_id: message.id,
45
- message_role: message.role,
46
- message_type: message.type,
47
- message_metadata: {
48
- content: message?.metadata?.content, // Removed amplitudeSafeString
49
- created_at: message.createdAt,
50
- user_typed: userTyped,
51
- },
28
+ set(replyEventCategoryAtom, UserEventCategory.QueryTyped);
29
+ set(userQueryAtom, queryTyped);
30
+ set(messagesAtom, [...get(messagesAtom), [message]]);
31
+ set(userHasRepliedAtom, true);
32
+ set(queueUserEventAtom, {
33
+ eventId: message.id,
34
+ createdAt: message.createdAt,
35
+ category: UserEventCategory.QueryTyped,
36
+ attributes: {
37
+ query: queryTyped,
52
38
  },
53
- alsoSendToGoogleAnalytics: true,
54
39
  });
40
+
41
+ if (trackEvent) {
42
+ trackEvent({
43
+ eventName: SpiffyMetricsEventName.ChatUserMessageInput,
44
+ eventProps: {
45
+ message_id: message.id,
46
+ message_role: message.role,
47
+ message_type: message.type,
48
+ message_metadata: {
49
+ content: message?.metadata?.content, // Removed amplitudeSafeString
50
+ created_at: message.createdAt,
51
+ user_typed: userTyped,
52
+ },
53
+ },
54
+ alsoSendToGoogleAnalytics: true,
55
+ });
56
+ }
55
57
  }
56
- });
58
+ );