@envive-ai/react-hooks 0.1.0 → 0.1.2

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 (302) hide show
  1. package/dist/adapters/amplitude/index.cjs +14 -0
  2. package/dist/adapters/amplitude/index.d.cts +4 -0
  3. package/dist/adapters/amplitude/index.d.ts +4 -0
  4. package/dist/adapters/amplitude/index.js +12 -0
  5. package/dist/api-B2euFL-5.cjs +268 -0
  6. package/dist/api-CxGedDxj.cjs +5057 -0
  7. package/dist/api-NJEaveju.js +4113 -0
  8. package/dist/api-XRr_lAG6.js +189 -0
  9. package/dist/application/config/index.cjs +34 -0
  10. package/dist/application/config/index.d.cts +14 -0
  11. package/dist/application/config/index.d.ts +14 -0
  12. package/dist/application/config/index.js +32 -0
  13. package/dist/application/models/graphql/index.cjs +13 -0
  14. package/dist/application/models/graphql/index.d.cts +2 -0
  15. package/dist/application/models/graphql/index.d.ts +2 -0
  16. package/dist/application/models/graphql/index.js +12 -0
  17. package/dist/application/models/guards/api/index.cjs +15 -0
  18. package/dist/application/models/guards/api/index.d.cts +3 -0
  19. package/dist/application/models/guards/api/index.d.ts +3 -0
  20. package/dist/application/models/guards/api/index.js +4 -0
  21. package/dist/application/models/index.cjs +72 -0
  22. package/dist/application/models/index.d.cts +10 -0
  23. package/dist/application/models/index.d.ts +10 -0
  24. package/dist/application/models/index.js +12 -0
  25. package/dist/application/models/utilityTypes/index.cjs +1 -0
  26. package/dist/application/models/utilityTypes/index.d.cts +2 -0
  27. package/dist/application/models/utilityTypes/index.d.ts +2 -0
  28. package/dist/application/models/utilityTypes/index.js +3 -0
  29. package/dist/application/models/variantInfo/index.cjs +1 -0
  30. package/dist/application/models/variantInfo/index.d.cts +2 -0
  31. package/dist/application/models/variantInfo/index.d.ts +2 -0
  32. package/dist/application/models/variantInfo/index.js +3 -0
  33. package/dist/application/service/customerService/index.cjs +4 -0
  34. package/dist/application/service/customerService/index.d.cts +3 -0
  35. package/dist/application/service/customerService/index.d.ts +3 -0
  36. package/dist/application/service/customerService/index.js +4 -0
  37. package/dist/application/service/index.cjs +761 -0
  38. package/dist/application/service/index.d.cts +407 -0
  39. package/dist/application/service/index.d.ts +407 -0
  40. package/dist/application/service/index.js +727 -0
  41. package/dist/application/utils/index.cjs +38 -0
  42. package/dist/application/utils/index.d.cts +254 -0
  43. package/dist/application/utils/index.d.ts +254 -0
  44. package/dist/application/utils/index.js +12 -0
  45. package/dist/atomStore-B3tsg6mF.cjs +0 -0
  46. package/dist/atomStore-BFtpknLM.js +31 -0
  47. package/dist/atomStore-CeJm9Llb.cjs +57 -0
  48. package/dist/atomStore-FSZd_20F.js +1 -0
  49. package/dist/atoms/app/index.cjs +17 -0
  50. package/dist/atoms/app/index.d.cts +33 -0
  51. package/dist/atoms/app/index.d.ts +33 -0
  52. package/dist/atoms/app/index.js +12 -0
  53. package/dist/atoms/atomStore/index.cjs +7 -0
  54. package/dist/atoms/atomStore/index.d.cts +23 -0
  55. package/dist/atoms/atomStore/index.d.ts +23 -0
  56. package/dist/atoms/atomStore/index.js +4 -0
  57. package/dist/atoms/chat/index.cjs +41 -0
  58. package/dist/atoms/chat/index.d.cts +159 -0
  59. package/dist/atoms/chat/index.d.ts +159 -0
  60. package/dist/atoms/chat/index.js +12 -0
  61. package/dist/atoms/globalSearch/index.cjs +6 -0
  62. package/dist/atoms/globalSearch/index.d.cts +23 -0
  63. package/dist/atoms/globalSearch/index.d.ts +23 -0
  64. package/dist/atoms/globalSearch/index.js +3 -0
  65. package/dist/atoms/org/index.cjs +41 -0
  66. package/dist/atoms/org/index.d.cts +93 -0
  67. package/dist/atoms/org/index.d.ts +93 -0
  68. package/dist/atoms/org/index.js +13 -0
  69. package/dist/atoms/search/index.cjs +44 -0
  70. package/dist/atoms/search/index.d.cts +11 -0
  71. package/dist/atoms/search/index.d.ts +11 -0
  72. package/dist/atoms/search/index.js +14 -0
  73. package/dist/{bandolier-Ble8jEa8.js → bandolier-C7PAIw02.js} +16 -7
  74. package/dist/{bandolier-Bm2xAt_j.cjs → bandolier-oMkFDJMF.cjs} +55 -46
  75. package/dist/{carpe-Da7b-LCW.cjs → carpe-C0ccKuR9.cjs} +34 -25
  76. package/dist/{carpe-W13mhRRP.js → carpe-DFc78_lJ.js} +16 -7
  77. package/dist/chat-CCgyDehy.cjs +151 -0
  78. package/dist/chat-Dk6KPb1K.js +25 -0
  79. package/dist/components-CScS7Ii-.cjs +28 -0
  80. package/dist/components-DAQxVIn9.js +10 -0
  81. package/dist/config/locators/components/chat/index.cjs +23 -0
  82. package/dist/config/locators/components/chat/index.d.cts +2 -0
  83. package/dist/config/locators/components/chat/index.d.ts +2 -0
  84. package/dist/config/locators/components/chat/index.js +3 -0
  85. package/dist/config/locators/components/chat/variants/index.cjs +28 -0
  86. package/dist/config/locators/components/chat/variants/index.d.cts +15 -0
  87. package/dist/config/locators/components/chat/variants/index.d.ts +15 -0
  88. package/dist/config/locators/components/chat/variants/index.js +16 -0
  89. package/dist/config/locators/components/index.cjs +5 -0
  90. package/dist/config/locators/components/index.d.cts +2 -0
  91. package/dist/config/locators/components/index.d.ts +2 -0
  92. package/dist/config/locators/components/index.js +3 -0
  93. package/dist/config/locators/components/search/index.cjs +12 -0
  94. package/dist/config/locators/components/search/index.d.cts +7 -0
  95. package/dist/config/locators/components/search/index.d.ts +7 -0
  96. package/dist/config/locators/components/search/index.js +8 -0
  97. package/dist/config/locators/index.cjs +47 -0
  98. package/dist/config/locators/index.d.cts +24 -0
  99. package/dist/config/locators/index.d.ts +24 -0
  100. package/dist/config/locators/index.js +6 -0
  101. package/dist/contexts/index.cjs +19 -3
  102. package/dist/contexts/index.d.cts +16 -22
  103. package/dist/contexts/index.d.ts +19 -26
  104. package/dist/contexts/index.js +15 -4
  105. package/dist/contexts-DO75-Kmx.js +7152 -0
  106. package/dist/contexts-iAzSvZjb.cjs +7331 -0
  107. package/dist/{coterie-DOWcJAYv.js → coterie-BGT8hqFR.js} +18 -7
  108. package/dist/{coterie-3y0D9ko4.cjs → coterie-Cp9FAJTQ.cjs} +25 -14
  109. package/dist/customerService-CUyZzowx.js +22 -0
  110. package/dist/customerService-DqPw_XKf.cjs +35 -0
  111. package/dist/custservice-types-D8Npo-5Z.js +22 -0
  112. package/dist/custservice-types-E9_OSaZ7.cjs +34 -0
  113. package/dist/{default-D_KPZdPJ.cjs → default-BAXPatxf.cjs} +1 -1
  114. package/dist/default-BR3225LZ.js +4 -0
  115. package/dist/default-DR6YjE9B.cjs +4 -0
  116. package/dist/{default-C2fEZKXk.js → default-wf_IORgo.js} +1 -1
  117. package/dist/divIds-BWvq-i6I.js +22 -0
  118. package/dist/{divIds-DnZNd7rA.cjs → divIds-CFyAjjp3.cjs} +6 -99
  119. package/dist/{dreamlandBaby-DCIsuU9R.cjs → dreamlandBaby-BzuMvUFS.cjs} +27 -18
  120. package/dist/{dreamlandBaby-DvSaZGrz.js → dreamlandBaby-DZvM81LQ.js} +16 -7
  121. package/dist/embedded-BlXJUbik.cjs +130 -0
  122. package/dist/embedded-C1jvFj3v.js +22 -0
  123. package/dist/events/index.cjs +4 -0
  124. package/dist/events/index.d.cts +45 -0
  125. package/dist/events/index.d.ts +45 -0
  126. package/dist/events/index.js +3 -0
  127. package/dist/events-ClCDFK7t.js +77 -0
  128. package/dist/events-Da7gpmGv.cjs +89 -0
  129. package/dist/featureFlagService-CroFRxvD.d.cts +17 -0
  130. package/dist/featureFlagService-NkJ2fuEj.d.ts +17 -0
  131. package/dist/featureGates-BMWXU0dS.d.ts +90 -0
  132. package/dist/featureGates-N_gyHCTn.d.cts +90 -0
  133. package/dist/{fiveCbd-CkOlVby_.cjs → fiveCbd-DE-tDY3d.cjs} +31 -22
  134. package/dist/{fiveCbd-B1SESMCO.js → fiveCbd-HNBPqPtX.js} +16 -7
  135. package/dist/{forLoveAndLemons-DmwYZIk0.js → forLoveAndLemons-BKmJJ9pq.js} +13 -5
  136. package/dist/{forLoveAndLemons-CfYPMnKS.cjs → forLoveAndLemons-BeVEBOiu.cjs} +17 -9
  137. package/dist/frontendConfig-KeNqU1wa.d.cts +790 -0
  138. package/dist/frontendConfig-cPvCTWm6.d.ts +790 -0
  139. package/dist/globalSearch-BC0rOX3E.js +13 -0
  140. package/dist/globalSearch-hxbXekus.cjs +38 -0
  141. package/dist/{greenpan-BtOi45lf.js → greenpan-BX1viAZB.js} +16 -7
  142. package/dist/{greenpan-Bsl3ir59.cjs → greenpan-chd3aa5I.cjs} +29 -20
  143. package/dist/{grooveLife-6_dtYsRk.js → grooveLife-CHot3rZw.js} +17 -8
  144. package/dist/{grooveLife-Cmm1PSCL.cjs → grooveLife-DEob7rK0.cjs} +28 -19
  145. package/dist/{homegrownCannabis-CO0uY_mp.cjs → homegrownCannabis-CoIjcehi.cjs} +27 -16
  146. package/dist/{homegrownCannabis-C-kw-74X.js → homegrownCannabis-CwkS1qDA.js} +17 -6
  147. package/dist/hooks/index.cjs +26 -3
  148. package/dist/hooks/index.d.cts +220 -299
  149. package/dist/hooks/index.d.ts +220 -299
  150. package/dist/hooks/index.js +15 -4
  151. package/dist/index-BdNKc2ix.d.cts +8 -0
  152. package/dist/index-BkhvV8RZ.d.cts +202 -0
  153. package/dist/index-BrXuc_Ck.d.cts +24 -0
  154. package/dist/{chatElementDisplayLocation-CX8fuNao.d.cts → index-C4zjAR1c.d.cts} +18 -30
  155. package/dist/index-CGB6CAmr.d.ts +6 -0
  156. package/dist/index-CIco0cCQ.d.ts +183 -0
  157. package/dist/index-COG1kOZG.d.ts +749 -0
  158. package/dist/index-CVxe7FpL.d.cts +6 -0
  159. package/dist/index-Cn1SeI5y.d.cts +183 -0
  160. package/dist/index-Cqg6ltII.d.ts +38 -0
  161. package/dist/index-CzMrMKx-.d.ts +202 -0
  162. package/dist/index-DE_7Q8qK.d.ts +94 -0
  163. package/dist/index-Da0UzyI9.d.ts +24 -0
  164. package/dist/index-DbWWcYax.d.cts +749 -0
  165. package/dist/index-DtoVXd6O.d.cts +97 -0
  166. package/dist/index-JClBRnSX.d.cts +94 -0
  167. package/dist/index-ghzD_356.d.ts +8 -0
  168. package/dist/index-hdbCEjYy.d.cts +38 -0
  169. package/dist/index-luJrHgPN.d.ts +97 -0
  170. package/dist/{chatElementDisplayLocation-CwptS9tx.d.ts → index-tfRj22E1.d.ts} +18 -30
  171. package/dist/interceptors/index.cjs +14 -0
  172. package/dist/interceptors/index.d.cts +25 -0
  173. package/dist/interceptors/index.d.ts +25 -0
  174. package/dist/interceptors/index.js +13 -0
  175. package/dist/{jackArcher-CLVmwwpI.js → jackArcher-BA-pkB4A.js} +16 -7
  176. package/dist/{jackArcher-DdYTIzAV.cjs → jackArcher-bewC0q1T.cjs} +33 -24
  177. package/dist/{jordanCraig-_u3-w4Hp.cjs → jordanCraig-B5k9nlAw.cjs} +76 -67
  178. package/dist/{jordanCraig-Am-Oor-O.js → jordanCraig-BsQ1mYbt.js} +16 -7
  179. package/dist/{kindredBravely-eWp-ud_E.js → kindredBravely-BxYkCpGY.js} +15 -6
  180. package/dist/{kindredBravely-CWovIDSc.cjs → kindredBravely-DsN0fo3s.cjs} +26 -17
  181. package/dist/{kutFromTheKloth-Q589bAOC.cjs → kutFromTheKloth-BQTCu3ct.cjs} +27 -18
  182. package/dist/{kutFromTheKloth-BMV4BuGQ.js → kutFromTheKloth-bukOQM3P.js} +16 -7
  183. package/dist/{larryAndSerges-BMUlTgI-.js → larryAndSerges-D1ecaT5a.js} +14 -5
  184. package/dist/{larryAndSerges-CEau764j.cjs → larryAndSerges-bj7fgy9b.cjs} +21 -12
  185. package/dist/{leapsAndRebounds-DHAtRTJD.cjs → leapsAndRebounds-BfneG_0c.cjs} +29 -20
  186. package/dist/{leapsAndRebounds-DGMzPO7T.js → leapsAndRebounds-DhNpZETg.js} +16 -7
  187. package/dist/locators-C2DX_nX6.js +1 -0
  188. package/dist/locators-CUpyd9Wt.cjs +0 -0
  189. package/dist/{longevityrx-jH2JLhNH.js → longevityrx-CnoGcw0w.js} +16 -7
  190. package/dist/{longevityrx-CZW8Hxzi.cjs → longevityrx-D0goIuX0.cjs} +24 -15
  191. package/dist/{lookOptic-CA6RwLbG.cjs → lookOptic-C4afLPZP.cjs} +24 -15
  192. package/dist/{lookOptic-BGXP5P_V.js → lookOptic-uJWIKpER.js} +16 -7
  193. package/dist/{mantraBrand-DByNqpnL.cjs → mantraBrand-8JUlYtCE.cjs} +45 -36
  194. package/dist/{mantraBrand-Cm9_PBCT.js → mantraBrand-DuwKHM26.js} +17 -8
  195. package/dist/{medterra-B0wxj_PV.js → medterra-BQec8rzn.js} +16 -7
  196. package/dist/{medterra-DnPN2ksU.cjs → medterra-DH067P-V.cjs} +36 -27
  197. package/dist/{modells-Bmz8Ag5M.js → modells-DAgLE2xo.js} +16 -7
  198. package/dist/{modells-CoYgkLSp.cjs → modells-DUFnLmAz.cjs} +30 -21
  199. package/dist/nodeSelector-DpKXszfU.d.ts +30 -0
  200. package/dist/nodeSelector-vKB44CDB.d.cts +30 -0
  201. package/dist/org-C11APG3v.js +63 -0
  202. package/dist/org-CnHL2I9B.cjs +106 -0
  203. package/dist/{pressedFloral-DjBiSoUl.cjs → pressedFloral-DVZVfOSQ.cjs} +35 -26
  204. package/dist/{pressedFloral-DSKs_oVG.js → pressedFloral-MdbuoRyA.js} +16 -7
  205. package/dist/search-CvHb1M3S.js +542 -0
  206. package/dist/search-bSYdOBhY.cjs +743 -0
  207. package/dist/search-filter-types-BsJjrxk0.d.ts +101 -0
  208. package/dist/search-filter-types-CqaGK3nM.d.cts +101 -0
  209. package/dist/{skinPerfection-B_3xzVNS.cjs → skinPerfection-BcEWICQN.cjs} +24 -15
  210. package/dist/{skinPerfection-IDrBuAPt.js → skinPerfection-bGiYxq1i.js} +16 -7
  211. package/dist/{snapSupplements-BStTsdOZ.cjs → snapSupplements-BXSXTjqF.cjs} +24 -15
  212. package/dist/{snapSupplements-BJk5T5ba.js → snapSupplements-D7hHhdC9.js} +16 -7
  213. package/dist/{spanx-BYg0LE7R.js → spanx-5-0yX3iK.js} +18 -9
  214. package/dist/{spanx-LwU1zSzq.cjs → spanx-lUzP6Lva.cjs} +30 -21
  215. package/dist/{spanxStaging-CfSmuKYB.js → spanxStaging-HglCMJag.js} +18 -9
  216. package/dist/{spanxStaging-OZLV9qix.cjs → spanxStaging-hreMR0MS.cjs} +34 -25
  217. package/dist/suggestionBarV2-types-B0RbMStE.js +9 -0
  218. package/dist/suggestionBarV2-types-DG3Ekk44.cjs +15 -0
  219. package/dist/{supergoop-CIlrHND_.js → supergoop-C9DDT3lY.js} +17 -7
  220. package/dist/{supergoop-BqPXDnKk.cjs → supergoop-CkjtuRck.cjs} +28 -18
  221. package/dist/test-types-C9b_OdfO.d.ts +39 -0
  222. package/dist/test-types-CpKCxk8U.d.cts +39 -0
  223. package/dist/types/index.cjs +6 -0
  224. package/dist/types/index.d.cts +3 -0
  225. package/dist/types/index.d.ts +3 -0
  226. package/dist/types/index.js +4 -0
  227. package/dist/types-BE4faOO_.d.cts +32 -0
  228. package/dist/{types-C4T5UOIW.cjs → types-BUjohkXp.cjs} +58 -58
  229. package/dist/{types-CYNvLeSA.js → types-BVsTRyxL.js} +58 -58
  230. package/dist/types-TD8g7LnH.d.ts +32 -0
  231. package/dist/{uniqueVintage-B30mOqbH.cjs → uniqueVintage-DIMGtYAU.cjs} +46 -37
  232. package/dist/{uniqueVintage-CFueJOhO.js → uniqueVintage-DPWA5Ed6.js} +16 -7
  233. package/dist/useMessageInterceptor-B-P_rw73.cjs +72 -0
  234. package/dist/useMessageInterceptor-C2RZM-fo.js +57 -0
  235. package/dist/utilityTypes-BVikejDo.js +1 -0
  236. package/dist/utilityTypes-C4h2wgAK.cjs +0 -0
  237. package/dist/variant-BGjOVpY3.d.cts +12 -0
  238. package/dist/variant-XITncuI3.d.ts +12 -0
  239. package/dist/variantInfo-CNRTY0gH.cjs +0 -0
  240. package/dist/variantInfo-CzhR5W6h.js +1 -0
  241. package/dist/{venaCbd-T0CqVD4k.js → venaCbd-B-znfAsl.js} +16 -7
  242. package/dist/{venaCbd-DHGZy49P.cjs → venaCbd-BOwOtpOz.cjs} +29 -20
  243. package/dist/{westonJonBoucher-BdMzs_Yg.cjs → westonJonBoucher-CraTzRVt.cjs} +29 -20
  244. package/dist/{westonJonBoucher-b4TCQ4ev.js → westonJonBoucher-DCRagGu3.js} +16 -7
  245. package/dist/{wineEnthusiast-BqR0i_54.js → wineEnthusiast-Bv7umajk.js} +16 -7
  246. package/dist/{wineEnthusiast-BLGlOjgr.cjs → wineEnthusiast-sVuATrq6.cjs} +28 -19
  247. package/dist/{wolfMattress-CyyO-LoC.js → wolfMattress-BUH-Rhov.js} +17 -6
  248. package/dist/{wolfMattress-DNGZOivg.cjs → wolfMattress-DpVHIEnJ.cjs} +29 -18
  249. package/dist/{wolfTactical-BmXYlFjr.cjs → wolfTactical-BcvF_sy-.cjs} +28 -19
  250. package/dist/{wolfTactical-3Mm2fvVF.js → wolfTactical-Q14A1fpw.js} +16 -7
  251. package/package.json +101 -3
  252. package/src/adapters/amplitude/amplitudeAdapter.ts +1 -1
  253. package/src/adapters/spiffy/commerce/api.ts +1 -1
  254. package/src/adapters/spiffy/commerce/graphql.ts +61 -37
  255. package/src/application/config/index.ts +1 -0
  256. package/src/application/models/index.ts +102 -17
  257. package/src/application/models/supportedOrgs.ts +89 -65
  258. package/src/application/service/index.ts +32 -0
  259. package/src/application/service/pageVariantService.ts +201 -114
  260. package/src/application/service/searchService.ts +1 -1
  261. package/src/application/service/windowFrontendConfigService.ts +40 -18
  262. package/src/application/utils/index.ts +22 -3
  263. package/src/atoms/app/variant.ts +48 -29
  264. package/src/atoms/atomStore/index.ts +1 -0
  265. package/src/atoms/chat/messageQueue.ts +34 -17
  266. package/src/atoms/chat/performanceMetrics.ts +51 -38
  267. package/src/atoms/chat/renderedWidgetRefs.ts +14 -15
  268. package/src/atoms/globalSearch/index.ts +1 -0
  269. package/src/atoms/org/org.ts +1 -3
  270. package/src/atoms/org/orgUIConfig.ts +31 -24
  271. package/src/contexts/chatContext.tsx +124 -72
  272. package/src/events/registerAnalyticsListeners.ts +13 -9
  273. package/src/hooks/useFileUpload.ts +9 -7
  274. package/src/hooks/useSearch.tsx +4 -7
  275. package/src/initialize.ts +2 -2
  276. package/src/interceptors/index.ts +3 -0
  277. package/src/main.tsx +11 -26
  278. package/src/types/index.ts +4 -0
  279. package/dist/GridInsertionService-CEYo9pGj.js +0 -22
  280. package/dist/GridInsertionService-CS_bnPh0.cjs +0 -28
  281. package/dist/contexts-BRjfVq_k.js +0 -5064
  282. package/dist/contexts-BYArqZtK.cjs +0 -5164
  283. package/dist/custservice-types-CFIFwZ-r.js +0 -10
  284. package/dist/custservice-types-CkfxZiHY.cjs +0 -16
  285. package/dist/default-CBUq6Q6G.cjs +0 -4
  286. package/dist/default-CGIFZK6m.js +0 -4
  287. package/dist/divIds-Bss-btao.js +0 -49
  288. package/dist/models-DHdb7QWn.js +0 -51
  289. package/dist/models-ixxUsGL_.cjs +0 -69
  290. package/dist/suggestionBarV2-types-BllzwsBD.js +0 -34
  291. package/dist/suggestionBarV2-types-CaovchMP.cjs +0 -46
  292. package/src/atoms/index.ts +0 -5
  293. package/src/index.ts +0 -31
  294. package/src/main.ts +0 -85
  295. /package/dist/{cdnService-zQfKk3Eb.js → cdnService-DvDSpfVJ.js} +0 -0
  296. /package/dist/{cdnService-CZ-aXcY6.cjs → cdnService-dJU3sHpF.cjs} +0 -0
  297. /package/dist/{entrypoints-YLQsbBRD.js → entrypoints-CmmOszXO.js} +0 -0
  298. /package/dist/{entrypoints-D_JUvkgy.cjs → entrypoints-fowCLUT2.cjs} +0 -0
  299. /package/dist/{socialProofClasses-CrQBWdSA.cjs → socialProofClasses-BYLiEXpU.cjs} +0 -0
  300. /package/dist/{socialProofClasses-Bhv2Vulz.js → socialProofClasses-CkJufEGb.js} +0 -0
  301. /package/src/atoms/{atomStore.ts → atomStore/atomStore.ts} +0 -0
  302. /package/src/atoms/{globalSearch.ts → globalSearch/globalSearch.ts} +0 -0
@@ -1,11 +1,19 @@
1
- import Logger from 'src/application/logging/logger';
2
- import { EnvironmentService } from 'src/application/service/environmentService';
3
- import { applyOverrides, Override } from 'src/application/utils/overrides';
4
- import { getAtomStore } from 'src/atoms/atomStore';
5
- import { colorsConfigAtom, frontendConfigAtom } from 'src/atoms/org/graphqlConfig';
6
- import { orgPageConfigAtom } from 'src/atoms/org/orgPageConfig';
7
- import { orgUIConfigAtom } from 'src/atoms/org/orgUIConfig';
8
- import { ColorMapping, OrgUIConfig, WidgetConfig, WidgetMountingConfig } from 'src/contexts/types';
1
+ import Logger from "src/application/logging/logger";
2
+ import { EnvironmentService } from "src/application/service/environmentService";
3
+ import { applyOverrides, Override } from "src/application/utils/overrides";
4
+ import { getAtomStore } from "src/atoms/atomStore/atomStore";
5
+ import {
6
+ colorsConfigAtom,
7
+ frontendConfigAtom,
8
+ } from "src/atoms/org/graphqlConfig";
9
+ import { orgPageConfigAtom } from "src/atoms/org/orgPageConfig";
10
+ import { orgUIConfigAtom } from "src/atoms/org/orgUIConfig";
11
+ import {
12
+ ColorMapping,
13
+ OrgUIConfig,
14
+ WidgetConfig,
15
+ WidgetMountingConfig,
16
+ } from "src/contexts/types";
9
17
 
10
18
  type CustomizableFrontendConfig = {
11
19
  orgUIConfig: OrgUIConfig;
@@ -39,19 +47,26 @@ class WindowFrontendConfigService {
39
47
 
40
48
  // Attach an explicit apply function to be called by the host page
41
49
  const apply = (overrides: FrontendConfigOverrides[]) => {
42
- Logger.logDebug('[spiffy-ai] applyFrontendConfigOverrides invoked');
50
+ Logger.logDebug("[spiffy-ai] applyFrontendConfigOverrides invoked");
43
51
  WindowFrontendConfigService.applyOverridesToFrontendConfig(overrides);
44
52
  };
45
53
 
46
54
  window[identifyingPrefix].applyFrontendConfigOverrides = apply;
47
55
 
48
- Logger.logDebug('[spiffy-ai] FrontendConfig overrides apply function attached');
56
+ Logger.logDebug(
57
+ "[spiffy-ai] FrontendConfig overrides apply function attached"
58
+ );
49
59
  } catch (e) {
50
- Logger.logError('[spiffy-ai] Failed to attach FrontendConfig overrides apply function', e);
60
+ Logger.logError(
61
+ "[spiffy-ai] Failed to attach FrontendConfig overrides apply function",
62
+ e
63
+ );
51
64
  }
52
65
  }
53
66
 
54
- private static async applyOverridesToFrontendConfig(overrides: FrontendConfigOverrides[]) {
67
+ private static async applyOverridesToFrontendConfig(
68
+ overrides: FrontendConfigOverrides[]
69
+ ) {
55
70
  const atomStore = getAtomStore();
56
71
  try {
57
72
  // Get the current frontend config(s) from the atoms once
@@ -68,15 +83,19 @@ class WindowFrontendConfigService {
68
83
  widgetConfigs: orgPageConfig.widgetConfigs,
69
84
  };
70
85
 
71
- Logger.logInfo('[spiffy-ai] base config', {
86
+ Logger.logInfo("[spiffy-ai] base config", {
72
87
  baseConfig: currentConfig,
73
88
  });
74
89
 
75
90
  for (let i = 0; i < overrides.length; i += 1) {
76
91
  const currentOverride = overrides[i];
77
- currentConfig = applyOverrides<CustomizableFrontendConfig>(currentConfig, currentOverride, {
78
- arrayStrategy: 'mergeByIndex',
79
- });
92
+ currentConfig = applyOverrides<CustomizableFrontendConfig>(
93
+ currentConfig,
94
+ currentOverride,
95
+ {
96
+ arrayStrategy: "mergeByIndex",
97
+ }
98
+ );
80
99
  }
81
100
 
82
101
  // Update the atoms with the new frontend config(s)
@@ -91,11 +110,14 @@ class WindowFrontendConfigService {
91
110
  widgetConfigs: currentConfig.widgetConfigs,
92
111
  });
93
112
 
94
- Logger.logInfo('[spiffy-ai] atoms updated via overrides', {
113
+ Logger.logInfo("[spiffy-ai] atoms updated via overrides", {
95
114
  currentConfig,
96
115
  });
97
116
  } catch (e) {
98
- Logger.logError('[spiffy-ai] Failed to apply FrontendConfig overrides', e);
117
+ Logger.logError(
118
+ "[spiffy-ai] Failed to apply FrontendConfig overrides",
119
+ e
120
+ );
99
121
  }
100
122
  }
101
123
  }
@@ -1,3 +1,22 @@
1
- export * from './messageFromQueryEvent';
2
- export * from './messageFromResponse';
3
- export * from './messageFromSuggestionEvent';
1
+ // utils
2
+ export * from "./analyticsUtils";
3
+ export * from "./coreContextToApiContext";
4
+ export * from "./coreUserEventToApiUserEvent";
5
+ export * from "./divideArray";
6
+ export * from "./domObserver";
7
+ export * from "./elementObserver";
8
+ export * from "./imageFilter";
9
+ export * from "./merchantUtils";
10
+ export * from "./messageFromFormSubmittedEvent";
11
+ export * from "./messageFromQueryEvent";
12
+ export * from "./messageFromResponse";
13
+ export * from "./messageFromSuggestionEvent";
14
+ export * from "./mouseEventTypes";
15
+ export * from "./mutationHelper";
16
+ export * from "./nextMessageRequestToApiRequest";
17
+ export * from "./nodeSelector";
18
+ export * from "./overrides";
19
+ export * from "./stringUtils";
20
+ export * from "./supportedEventRequestToApiRequest";
21
+ export * from "./urlsParser";
22
+ export * from "./validation";
@@ -1,10 +1,10 @@
1
- import { atomWithStorage } from 'jotai/utils';
2
- import { atom } from 'jotai';
1
+ import { atomWithStorage } from "jotai/utils";
2
+ import { atom } from "jotai";
3
3
  import {
4
4
  SupportedEventProductCategory,
5
5
  SupportedEventResponse,
6
6
  PageVisitCategory,
7
- } from '@spiffy-ai/commerce-api-client';
7
+ } from "@spiffy-ai/commerce-api-client";
8
8
  import {
9
9
  PageVisitVariantInfo,
10
10
  PDPVariantInfo,
@@ -12,14 +12,14 @@ import {
12
12
  VariantInfo,
13
13
  FeatureGates,
14
14
  OrgShortName,
15
- } from 'src/application/models';
16
- import { sessionStorageUtil } from 'src/atoms/atomStore';
17
- import { featureFlagServiceAtom, orgShortNameAtom } from 'src/atoms/org/org';
15
+ } from "src/application/models";
16
+ import { sessionStorageUtil } from "src/atoms/atomStore/atomStore";
17
+ import { featureFlagServiceAtom, orgShortNameAtom } from "src/atoms/org/org";
18
18
 
19
19
  export interface SupportedEvent
20
20
  extends Pick<
21
21
  SupportedEventResponse,
22
- 'supported' | 'ready' | 'category' | 'collections' | 'top_category'
22
+ "supported" | "ready" | "category" | "collections" | "top_category"
23
23
  > {
24
24
  numberOfReviews: number | undefined;
25
25
  merchant_tags?: string[];
@@ -92,7 +92,10 @@ export type BackendPageVariantConfig = {
92
92
 
93
93
  export interface UrlResolverResponse {
94
94
  variant_type: string;
95
- specific_details: UrlResolvingPDPConfig | UrlResolvingPLPConfig | UrlResolvingGenericConfig;
95
+ specific_details:
96
+ | UrlResolvingPDPConfig
97
+ | UrlResolvingPLPConfig
98
+ | UrlResolvingGenericConfig;
96
99
  ready: boolean;
97
100
  user_event?: {
98
101
  event_id?: string;
@@ -107,12 +110,12 @@ export interface UrlResolverResponse {
107
110
  export type UrlResolverCache = Record<string, UrlResolverResponse | undefined>;
108
111
 
109
112
  const internalStorageUrlResolverAtom = atomWithStorage<string | undefined>(
110
- 'spiffy-url-resolver',
113
+ "spiffy-url-resolver",
111
114
  undefined,
112
115
  sessionStorageUtil,
113
116
  {
114
117
  getOnInit: true,
115
- },
118
+ }
116
119
  );
117
120
 
118
121
  export const urlResolverAtom = atom(
@@ -123,22 +126,26 @@ export const urlResolverAtom = atom(
123
126
  }
124
127
  return JSON.parse(maybeUrlResolver);
125
128
  },
126
- (get, set, value: { url: string; response: UrlResolverResponse | undefined }) => {
129
+ (
130
+ get,
131
+ set,
132
+ value: { url: string; response: UrlResolverResponse | undefined }
133
+ ) => {
127
134
  // Get current cache from storage
128
135
  const currentCache = get(urlResolverAtom);
129
136
  const newCache = { ...currentCache, [value.url]: value.response };
130
137
 
131
138
  set(internalStorageUrlResolverAtom, JSON.stringify(newCache));
132
- },
139
+ }
133
140
  );
134
141
 
135
142
  const internalStorageSupportedEventAtom = atomWithStorage<string | undefined>(
136
- 'spiffy-supported-event',
143
+ "spiffy-supported-event",
137
144
  undefined,
138
145
  sessionStorageUtil,
139
146
  {
140
147
  getOnInit: true,
141
- },
148
+ }
142
149
  );
143
150
  const internalSupportedEventAtom = atom<SupportedEvent | undefined>(undefined);
144
151
 
@@ -167,10 +174,13 @@ export const supportedEventAtom = atom(
167
174
 
168
175
  // TODO: clean up this logic & the feature gate when we've fully rolled out
169
176
  if (
170
- !featureFlagService.isFeatureGateEnabled(FeatureGates.IsNonShapewearEnabled) &&
177
+ !featureFlagService.isFeatureGateEnabled(
178
+ FeatureGates.IsNonShapewearEnabled
179
+ ) &&
171
180
  variantCategory &&
172
181
  variantCategory !== SupportedEventProductCategory.Shapewear &&
173
- (shortName === OrgShortName.Spanx || shortName === OrgShortName.SpanxStaging)
182
+ (shortName === OrgShortName.Spanx ||
183
+ shortName === OrgShortName.SpanxStaging)
174
184
  ) {
175
185
  const modifiedSupportedEvent = {
176
186
  supported: false,
@@ -182,14 +192,17 @@ export const supportedEventAtom = atom(
182
192
  merchant_tags: value.merchant_tags,
183
193
  };
184
194
  set(internalSupportedEventAtom, modifiedSupportedEvent);
185
- set(internalStorageSupportedEventAtom, JSON.stringify(modifiedSupportedEvent));
195
+ set(
196
+ internalStorageSupportedEventAtom,
197
+ JSON.stringify(modifiedSupportedEvent)
198
+ );
186
199
 
187
200
  return;
188
201
  }
189
202
 
190
203
  set(internalSupportedEventAtom, value);
191
204
  set(internalStorageSupportedEventAtom, JSON.stringify(value));
192
- },
205
+ }
193
206
  );
194
207
 
195
208
  const internalVariantIdAtom = atom<string>();
@@ -199,22 +212,28 @@ const internalProductUrlAtom = atom<string>();
199
212
  const internalPlpIdAtom = atom<string>();
200
213
  const internalUrlAtom = atom<string>();
201
214
  const internalPageVisitCategoryAtom = atom<PageVisitCategory>();
202
- const internalVariantAtom = atom<'pdp' | 'plp' | 'search' | 'page_visit'>('pdp');
215
+ const internalVariantAtom = atom<"pdp" | "plp" | "search" | "page_visit">(
216
+ "pdp"
217
+ );
203
218
 
204
219
  export const variantIdAtom = atom((get) => get(internalVariantIdAtom));
205
220
  export const productIdAtom = atom((get) => get(internalProductIdAtom));
206
- export const parentProductIdAtom = atom((get) => get(internalParentProductIdAtom));
221
+ export const parentProductIdAtom = atom((get) =>
222
+ get(internalParentProductIdAtom)
223
+ );
207
224
  export const productUrlAtom = atom((get) => get(internalProductUrlAtom));
208
225
  export const plpIdAtom = atom((get) => get(internalPlpIdAtom));
209
226
  export const urlAtom = atom((get) => get(internalUrlAtom));
210
- export const pageVisitCategoryAtom = atom((get) => get(internalPageVisitCategoryAtom));
227
+ export const pageVisitCategoryAtom = atom((get) =>
228
+ get(internalPageVisitCategoryAtom)
229
+ );
211
230
  export const variantAtom = atom((get) => get(internalVariantAtom));
212
231
  export const hasParsedVariantInfoAtom = atom(false);
213
232
 
214
233
  export const variantInfoAtom = atom(
215
234
  (get): VariantInfo => {
216
235
  const variant = get(variantAtom);
217
- if (variant === 'pdp') {
236
+ if (variant === "pdp") {
218
237
  return {
219
238
  variantId: get(variantIdAtom),
220
239
  variant,
@@ -223,7 +242,7 @@ export const variantInfoAtom = atom(
223
242
  url: get(urlAtom),
224
243
  } as PDPVariantInfo;
225
244
  }
226
- if (variant === 'plp') {
245
+ if (variant === "plp") {
227
246
  return {
228
247
  variantId: get(variantIdAtom),
229
248
  variant,
@@ -231,7 +250,7 @@ export const variantInfoAtom = atom(
231
250
  url: get(urlAtom),
232
251
  } as PLPVariantInfo;
233
252
  }
234
- if (variant === 'page_visit') {
253
+ if (variant === "page_visit") {
235
254
  return {
236
255
  variantId: get(variantIdAtom),
237
256
  variant,
@@ -239,23 +258,23 @@ export const variantInfoAtom = atom(
239
258
  pageVisitCategory: get(pageVisitCategoryAtom),
240
259
  } as PageVisitVariantInfo;
241
260
  }
242
- throw new Error('Invalid variantInfo details');
261
+ throw new Error("Invalid variantInfo details");
243
262
  },
244
263
  (_, set, newVariant: VariantInfo) => {
245
264
  set(internalVariantAtom, newVariant.variant);
246
265
  set(internalVariantIdAtom, newVariant.variantId);
247
- if (newVariant.variant === 'pdp') {
266
+ if (newVariant.variant === "pdp") {
248
267
  set(internalProductIdAtom, newVariant.productId);
249
268
  set(internalParentProductIdAtom, newVariant.parentProductId);
250
269
  set(internalUrlAtom, newVariant.url);
251
270
  }
252
- if (newVariant.variant === 'plp') {
271
+ if (newVariant.variant === "plp") {
253
272
  set(internalPlpIdAtom, newVariant.plpId);
254
273
  set(internalUrlAtom, newVariant.url);
255
274
  }
256
- if (newVariant.variant === 'page_visit') {
275
+ if (newVariant.variant === "page_visit") {
257
276
  set(internalUrlAtom, newVariant.url);
258
277
  set(internalPageVisitCategoryAtom, newVariant.pageVisitCategory);
259
278
  }
260
- },
279
+ }
261
280
  );
@@ -0,0 +1 @@
1
+ export * from "./atomStore";
@@ -1,9 +1,13 @@
1
- import { atom } from 'jotai';
2
- import { v4 as uuid } from 'uuid';
3
- import { GenerationParams, NextMessageRequest, UserEvent } from 'src/application/models';
4
- import { getAtomStore } from 'src/atoms/atomStore';
5
- import { appDetailsAtom } from 'src/atoms/app';
6
- import { featureFlagServiceAtom } from 'src/atoms/org/org';
1
+ import { atom } from "jotai";
2
+ import { v4 as uuid } from "uuid";
3
+ import {
4
+ GenerationParams,
5
+ NextMessageRequest,
6
+ UserEvent,
7
+ } from "src/application/models";
8
+ import { getAtomStore } from "src/atoms/atomStore/atomStore";
9
+ import { appDetailsAtom } from "src/atoms/app";
10
+ import { featureFlagServiceAtom } from "src/atoms/org/org";
7
11
 
8
12
  const internalUserEventQueueAtom = atom<UserEvent[]>([]);
9
13
 
@@ -18,12 +22,18 @@ export const userEventQueueAtom = atom((get) => {
18
22
  * If the event has the same eventId as an existing message in the queue the NEW
19
23
  * event is ignored
20
24
  */
21
- export const queueUserEventAtom = atom(null, (get, set, userEvent: UserEvent) => {
22
- if (userEvent === undefined) {
23
- return;
25
+ export const queueUserEventAtom = atom(
26
+ null,
27
+ (get, set, userEvent: UserEvent) => {
28
+ if (userEvent === undefined) {
29
+ return;
30
+ }
31
+ set(internalUserEventQueueAtom, [
32
+ ...get(internalUserEventQueueAtom),
33
+ userEvent,
34
+ ]);
24
35
  }
25
- set(internalUserEventQueueAtom, [...get(internalUserEventQueueAtom), userEvent]);
26
- });
36
+ );
27
37
 
28
38
  /**
29
39
  * This atom exposes a function to reset the entire queue. All messages in the queue will be purged
@@ -36,13 +46,20 @@ export const clearUserEventAtom = atom(null, (_, set) => {
36
46
  * This atom is used to mark events as processed and remove them from the queue
37
47
  * It accepts a list of eventId values and will remove all events with those eventIds from the queue.
38
48
  */
39
- export const processUserEventAtom = atom(null, (get, set, eventIds: string[]) => {
40
- const curr = get(internalUserEventQueueAtom);
41
- const remaining = curr?.filter((event) => !eventIds.includes(event.eventId));
42
- set(internalUserEventQueueAtom, remaining);
43
- });
49
+ export const processUserEventAtom = atom(
50
+ null,
51
+ (get, set, eventIds: string[]) => {
52
+ const curr = get(internalUserEventQueueAtom);
53
+ const remaining = curr?.filter(
54
+ (event) => !eventIds.includes(event.eventId)
55
+ );
56
+ set(internalUserEventQueueAtom, remaining);
57
+ }
58
+ );
44
59
 
45
- export const userQueueEventCountAtom = atom((get) => get(userEventQueueAtom).length);
60
+ export const userQueueEventCountAtom = atom(
61
+ (get) => get(userEventQueueAtom).length
62
+ );
46
63
 
47
64
  export const createResponsePayload = ({
48
65
  userEvents,
@@ -1,28 +1,31 @@
1
- import { atom } from 'jotai';
2
- import { atomWithStorage } from 'jotai/utils';
3
- import Logger from 'src/application/logging/logger';
4
- import { getAtomStore, sessionStorageUtil } from 'src/atoms/atomStore';
1
+ import { atom } from "jotai";
2
+ import { atomWithStorage } from "jotai/utils";
3
+ import Logger from "src/application/logging/logger";
4
+ import {
5
+ getAtomStore,
6
+ sessionStorageUtil,
7
+ } from "src/atoms/atomStore/atomStore";
5
8
 
6
- export const APP_INITIAL_START_TIME_KEY = 'spiffy-app-initial-start-time';
7
- export const PAGE_LOAD_OFFSET_TIME_KEY = 'spiffy-page-load-offset-time';
9
+ export const APP_INITIAL_START_TIME_KEY = "spiffy-app-initial-start-time";
10
+ export const PAGE_LOAD_OFFSET_TIME_KEY = "spiffy-page-load-offset-time";
8
11
  /**
9
12
  * The different performance metrics that can be logged. All times are relative to the
10
13
  * initial start time of the app and are stored in milliseconds.
11
14
  */
12
15
  export enum PerfMetricsEvents {
13
- PageLoadOffset = 'page_load_offset_ms',
14
- MainBundleLoaded = 'main_bundle_loaded_ms',
15
- OrgConfigLoadStarted = 'org_config_load_started_ms',
16
- OrgConfigLoadEnded = 'org_config_load_ended_ms',
17
- FirstResponseStarted = 'first_response_started_ms',
18
- FirstResponseCompleted = 'first_response_completed_ms',
19
- FirstSuggestionsStarted = 'first_suggestions_started_ms',
20
- FirstSuggestionsCompleted = 'first_suggestions_completed_ms',
21
- EmbeddedWidgetRendered = 'embedded_widget_rendered_ms',
22
- FloatingButtonRendered = 'floating_button_rendered_ms',
23
- TopSuggestionsBarRendered = 'top_suggestions_bar_rendered_ms',
24
- BottomSuggestionsBarRendered = 'bottom_suggestions_bar_rendered_ms',
25
- SearchPromptRendered = 'search_prompt_rendered_ms',
16
+ PageLoadOffset = "page_load_offset_ms",
17
+ MainBundleLoaded = "main_bundle_loaded_ms",
18
+ OrgConfigLoadStarted = "org_config_load_started_ms",
19
+ OrgConfigLoadEnded = "org_config_load_ended_ms",
20
+ FirstResponseStarted = "first_response_started_ms",
21
+ FirstResponseCompleted = "first_response_completed_ms",
22
+ FirstSuggestionsStarted = "first_suggestions_started_ms",
23
+ FirstSuggestionsCompleted = "first_suggestions_completed_ms",
24
+ EmbeddedWidgetRendered = "embedded_widget_rendered_ms",
25
+ FloatingButtonRendered = "floating_button_rendered_ms",
26
+ TopSuggestionsBarRendered = "top_suggestions_bar_rendered_ms",
27
+ BottomSuggestionsBarRendered = "bottom_suggestions_bar_rendered_ms",
28
+ SearchPromptRendered = "search_prompt_rendered_ms",
26
29
  }
27
30
 
28
31
  const internalPerfMetricsAtom = atom<Map<PerfMetricsEvents, number>>(new Map());
@@ -32,7 +35,7 @@ export const appInitialStartTimeMsAtom = atomWithStorage<string | undefined>(
32
35
  sessionStorageUtil,
33
36
  {
34
37
  getOnInit: true,
35
- },
38
+ }
36
39
  );
37
40
 
38
41
  export const pageLoadOffsetTimeAtom = atomWithStorage<string | undefined>(
@@ -41,7 +44,7 @@ export const pageLoadOffsetTimeAtom = atomWithStorage<string | undefined>(
41
44
  sessionStorageUtil,
42
45
  {
43
46
  getOnInit: true,
44
- },
47
+ }
45
48
  );
46
49
 
47
50
  /**
@@ -54,7 +57,9 @@ export const resetPerformanceMetricsAtom = () => {
54
57
  const atomStore = getAtomStore();
55
58
  atomStore.set(internalPerfMetricsAtom, new Map());
56
59
  };
57
- export const performanceMetricsAtom = atom((get) => get(internalPerfMetricsAtom));
60
+ export const performanceMetricsAtom = atom((get) =>
61
+ get(internalPerfMetricsAtom)
62
+ );
58
63
  export const hasReportedPerformanceMetricsAtom = atom<boolean>(false);
59
64
 
60
65
  /**
@@ -63,22 +68,30 @@ export const hasReportedPerformanceMetricsAtom = atom<boolean>(false);
63
68
  *
64
69
  * @param value The performance metric name to log.
65
70
  */
66
- export const logPerfMetricAtom = atom(null, (get, set, value: PerfMetricsEvents) => {
67
- const initialTimeStorageValue = get(appInitialStartTimeMsAtom);
68
- const initialTimeMs = initialTimeStorageValue ? parseInt(initialTimeStorageValue, 10) : undefined;
71
+ export const logPerfMetricAtom = atom(
72
+ null,
73
+ (get, set, value: PerfMetricsEvents) => {
74
+ const initialTimeStorageValue = get(appInitialStartTimeMsAtom);
75
+ const initialTimeMs = initialTimeStorageValue
76
+ ? parseInt(initialTimeStorageValue, 10)
77
+ : undefined;
69
78
 
70
- if (initialTimeMs == null) {
71
- Logger.logWarn(`[spiffy-ai] No initial app start time found. Skipping...`, undefined);
72
- return;
73
- }
79
+ if (initialTimeMs == null) {
80
+ Logger.logWarn(
81
+ `[spiffy-ai] No initial app start time found. Skipping...`,
82
+ undefined
83
+ );
84
+ return;
85
+ }
74
86
 
75
- const currentPerfMetrics = get(internalPerfMetricsAtom);
76
- if (currentPerfMetrics.has(value)) {
77
- return;
78
- }
87
+ const currentPerfMetrics = get(internalPerfMetricsAtom);
88
+ if (currentPerfMetrics.has(value)) {
89
+ return;
90
+ }
79
91
 
80
- const currentTimeMs = Date.now();
81
- const deltaMs = currentTimeMs - initialTimeMs;
82
- currentPerfMetrics.set(value, deltaMs);
83
- set(internalPerfMetricsAtom, currentPerfMetrics);
84
- });
92
+ const currentTimeMs = Date.now();
93
+ const deltaMs = currentTimeMs - initialTimeMs;
94
+ currentPerfMetrics.set(value, deltaMs);
95
+ set(internalPerfMetricsAtom, currentPerfMetrics);
96
+ }
97
+ );
@@ -1,28 +1,27 @@
1
- import { atom } from 'jotai';
2
- import { getAtomStore } from 'src/atoms/atomStore';
1
+ import { atom } from "jotai";
2
+ import { getAtomStore } from "src/atoms/atomStore/atomStore";
3
3
 
4
- const internalWidgetArrayAtom = atom<HTMLElement[]>([])
4
+ const internalWidgetArrayAtom = atom<HTMLElement[]>([]);
5
5
 
6
- export const widgetArrayAtom = atom((get) =>
7
- get(internalWidgetArrayAtom))
6
+ export const widgetArrayAtom = atom((get) => get(internalWidgetArrayAtom));
8
7
 
9
8
  /**
10
9
  * This function call is used to create a list of the Spiffy widgets
11
10
  * that are rendering on the page.
12
- *
11
+ *
13
12
  * It is used by the FloatingButton widget to slide out of view when it
14
13
  * overlaps with another Spiffy widget.
15
- *
14
+ *
16
15
  * The spiffy widgets should be added to the this array for the floating button
17
16
  * to know about them.
18
- *
17
+ *
19
18
  * Today the "SuggestionBar" widget is not added, but the other widgets are.
20
- *
19
+ *
21
20
  */
22
21
  export const addWidget = (ref: HTMLElement, idx?: number) => {
23
- const atomStore = getAtomStore()
24
- const val = atomStore.get(internalWidgetArrayAtom)
25
- const insertIdx = idx ?? val.length
26
- val[insertIdx] = ref
27
- atomStore.set(internalWidgetArrayAtom, val)
28
- }
22
+ const atomStore = getAtomStore();
23
+ const val = atomStore.get(internalWidgetArrayAtom);
24
+ const insertIdx = idx ?? val.length;
25
+ val[insertIdx] = ref;
26
+ atomStore.set(internalWidgetArrayAtom, val);
27
+ };
@@ -0,0 +1 @@
1
+ export * from "./globalSearch";
@@ -7,14 +7,12 @@ import { GraphQLClient } from "src/adapters/spiffy/commerce/graphql";
7
7
  import { OrgConfig } from "src/application/models/api/orgConfigResults";
8
8
  import { EnvironmentService } from "src/application/service/environmentService";
9
9
  import { FeatureFlagService } from "src/application/service/featureFlagService";
10
- import { FeatureGates } from "src/application/models/featureGates";
11
10
  import { UserIdentityService } from "src/application/service/userIdentityService";
12
- import { AtomStore, getAtomStore } from "src/atoms/atomStore";
11
+ import { AtomStore, getAtomStore } from "src/atoms/atomStore/atomStore";
13
12
  import { PerfMetricsEvents, logPerfMetricAtom } from "src/atoms/chat";
14
13
  import { orgAnalyticsConfigAtom } from "src/atoms/org/orgAnalyticsConfig";
15
14
  import { colorsConfigAtom, frontendConfigAtom } from "./graphqlConfig";
16
15
  import { getOrgUIConfig } from "./orgUIConfig";
17
- import Logger from "src/application/logging/logger";
18
16
  import { useEnviveConfig } from "src/contexts/enviveConfigContext";
19
17
 
20
18
  const internalApiKeyAtom = atom<string | undefined>(undefined);