@axos-web-dev/shared-components 2.0.0-dev.28 → 2.0.0-dev.29-toasts

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 (224) hide show
  1. package/dist/ATMLocator/ATMLocator.js +7 -2
  2. package/dist/Article/Article.css.d.ts +8 -4
  3. package/dist/ArticlesSet/ArticlesSet.css.d.ts +23 -1
  4. package/dist/ArticlesSet/ArticlesSet.css.js +7 -7
  5. package/dist/ArticlesSet/ArticlesSet.js +3 -4
  6. package/dist/Auth/ErrorAlert.js +8 -3
  7. package/dist/Auth/SignInPassword.js +1 -1
  8. package/dist/AwardsItem/AwardsItem.js +2 -2
  9. package/dist/Button/Button.js +26 -3
  10. package/dist/Calculators/ApyCalculatorUserTest/ApyCalculatorUserTest.css.d.ts +95 -0
  11. package/dist/Calculators/ApyCalculatorUserTest/ApyCalculatorUserTest.css.js +101 -0
  12. package/dist/Calculators/ApyCalculatorUserTest/index.d.ts +12 -0
  13. package/dist/Calculators/ApyCalculatorUserTest/index.js +618 -0
  14. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js +2 -1
  15. package/dist/Calculators/Calculator.js +18 -3
  16. package/dist/Calculators/MarginTradingCalculator/index.js +7 -2
  17. package/dist/Calculators/index.d.ts +1 -0
  18. package/dist/Calculators/index.js +2 -0
  19. package/dist/Carousel/index.js +7 -2
  20. package/dist/Chatbot/AnimatedGradientBorder.css.d.ts +1 -0
  21. package/dist/Chatbot/AnimatedGradientBorder.css.js +2 -0
  22. package/dist/Chatbot/AudioManager.d.ts +19 -0
  23. package/dist/Chatbot/AudioManager.js +61 -0
  24. package/dist/Chatbot/Bubble.css.js +2 -2
  25. package/dist/Chatbot/Bubble.js +2 -11
  26. package/dist/Chatbot/ChatWindow.css.d.ts +4 -0
  27. package/dist/Chatbot/ChatWindow.css.js +44 -36
  28. package/dist/Chatbot/ChatWindow.js +461 -372
  29. package/dist/Chatbot/Chatbot.css.js +0 -1
  30. package/dist/Chatbot/Chatbot.css.ts.vanilla.css.js +1 -0
  31. package/dist/Chatbot/Chatbot.d.ts +3 -0
  32. package/dist/Chatbot/Chatbot.js +113 -41
  33. package/dist/Chatbot/ChatbotMessage.js +183 -197
  34. package/dist/Chatbot/EllipsisAnimation.js +0 -6
  35. package/dist/Chatbot/ExpandChatToggle.d.ts +8 -0
  36. package/dist/Chatbot/ExpandChatToggle.js +74 -0
  37. package/dist/Chatbot/index.js +7 -2
  38. package/dist/Chatbot/store/chat.d.ts +8 -0
  39. package/dist/Chatbot/store/chat.js +14 -2
  40. package/dist/Chevron/Chevron.interface.d.ts +1 -0
  41. package/dist/Chevron/index.js +12 -3
  42. package/dist/Comparison/Comparison.css.d.ts +1 -0
  43. package/dist/Comparison/Comparison.css.js +16 -13
  44. package/dist/Comparison/Comparison.js +7 -2
  45. package/dist/Comparison/ComparisonSet.js +2 -1
  46. package/dist/Comparison/index.js +2 -1
  47. package/dist/ExecutiveBio/ExecutiveBio.css.d.ts +27 -0
  48. package/dist/ExecutiveBio/ExecutiveBio.js +281 -262
  49. package/dist/FaqAccordion/index.js +7 -2
  50. package/dist/FdicCallout/index.js +2 -1
  51. package/dist/FooterDisclosure/FooterDisclosure.js +1 -0
  52. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +670 -659
  53. package/dist/Forms/ApplyNow.js +7 -2
  54. package/dist/Forms/CommercialDepositsACS.d.ts +3 -0
  55. package/dist/Forms/CommercialDepositsACS.js +278 -0
  56. package/dist/Forms/ContactUsBusiness.js +9 -4
  57. package/dist/Forms/ContactUsBusinessNameEmail.js +9 -4
  58. package/dist/Forms/ContactUsNMLSId.js +9 -4
  59. package/dist/Forms/ContactUsSchwabAAS.d.ts +11 -0
  60. package/dist/Forms/ContactUsSchwabAAS.js +263 -0
  61. package/dist/Forms/CpraRequest.js +8 -3
  62. package/dist/Forms/CraPublicFile.js +9 -4
  63. package/dist/Forms/EmailOnly.js +10 -5
  64. package/dist/Forms/Forms.css.d.ts +3 -0
  65. package/dist/Forms/MortgageRate/MortgageRateForm.js +7 -2
  66. package/dist/Forms/MortgageRate/MortgageRateWatch.js +7 -2
  67. package/dist/Forms/MortgageWarehouseLending.d.ts +1 -1
  68. package/dist/Forms/MortgageWarehouseLending.js +16 -11
  69. package/dist/Forms/SuccesForm.js +8 -3
  70. package/dist/Forms/index.d.ts +2 -0
  71. package/dist/Forms/index.js +4 -0
  72. package/dist/HeroBanner/HeroBanner.d.ts +1 -1
  73. package/dist/HeroBanner/HeroBanner.interface.d.ts +2 -0
  74. package/dist/HeroBanner/HeroBanner.js +33 -28
  75. package/dist/Hyperlink/index.js +9 -4
  76. package/dist/IconBillboard/IconBillboard.css.d.ts +16 -0
  77. package/dist/IconBillboard/IconBillboard.css.js +7 -4
  78. package/dist/IconBillboard/IconBillboard.interface.d.ts +2 -0
  79. package/dist/IconBillboard/IconBillboardSet.js +68 -62
  80. package/dist/IconBillboard/index.js +2 -1
  81. package/dist/IconBillboard/sections/CallToActionSection.js +3 -1
  82. package/dist/ImageBillboard/ImageBillboard.interface.d.ts +2 -0
  83. package/dist/ImageBillboard/ImageBillboardSet.d.ts +1 -1
  84. package/dist/ImageBillboard/ImageBillboardSet.js +28 -20
  85. package/dist/ImageLink/ImageLink.js +7 -2
  86. package/dist/ImageLink/ImageLinkSet.js +7 -2
  87. package/dist/ImageLink/index.js +8 -3
  88. package/dist/ImageToast/ImageToast.css.d.ts +5 -0
  89. package/dist/ImageToast/ImageToast.css.js +13 -0
  90. package/dist/ImageToast/index.d.ts +9 -0
  91. package/dist/{NavigationMenu/Navbar.js → ImageToast/index.js} +82 -93
  92. package/dist/Insight/Featured/CategorySelector.d.ts +1 -1
  93. package/dist/Insight/Featured/CategorySelector.js +10 -4
  94. package/dist/Insight/Featured/Featured.js +7 -2
  95. package/dist/Insight/Featured/Header.d.ts +1 -2
  96. package/dist/Insight/Featured/Header.js +7 -2
  97. package/dist/LandingPageHeader/LandingPageHeader.js +25 -16
  98. package/dist/Modal/Modal.js +8 -3
  99. package/dist/Modal/contextApi/store.d.ts +6 -1
  100. package/dist/Modal/contextApi/store.js +112 -6
  101. package/dist/NavigationMenu/AxosALTS/NavBar.module.js +23 -23
  102. package/dist/NavigationMenu/AxosALTS/index.js +42 -23
  103. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  104. package/dist/NavigationMenu/AxosAdvisor/index.js +1 -1
  105. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  106. package/dist/NavigationMenu/AxosAdvisorServices/index.js +31 -24
  107. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +7 -2
  108. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +3 -9
  109. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +13 -25
  110. package/dist/NavigationMenu/AxosBank/SubNavBar.js +37 -116
  111. package/dist/NavigationMenu/AxosBank/index.js +58 -39
  112. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  113. package/dist/NavigationMenu/AxosClearing/SubNavBar.js +6 -6
  114. package/dist/NavigationMenu/AxosClearing/index.js +31 -16
  115. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +40 -43
  116. package/dist/NavigationMenu/AxosFiduciary/index.js +5 -3
  117. package/dist/NavigationMenu/LaVictoire/index.js +8 -3
  118. package/dist/NavigationMenu/NavItem/index.js +141 -1
  119. package/dist/NavigationMenu/ServerNavigation/DropwdownButton.d.ts +7 -0
  120. package/dist/NavigationMenu/ServerNavigation/DropwdownButton.js +248 -0
  121. package/dist/NavigationMenu/ServerNavigation/Menu.d.ts +40 -0
  122. package/dist/NavigationMenu/ServerNavigation/Menu.js +268 -0
  123. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.d.ts +13 -0
  124. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.js +637 -0
  125. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.module.js +86 -0
  126. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileNavData.d.ts +51 -0
  127. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileNavData.js +96 -0
  128. package/dist/NavigationMenu/ServerNavigation/MobileMenu/mobileReducer.d.ts +36 -0
  129. package/dist/NavigationMenu/ServerNavigation/MobileMenu/mobileReducer.js +105 -0
  130. package/dist/NavigationMenu/ServerNavigation/NavBar.module.js +125 -0
  131. package/dist/NavigationMenu/ServerNavigation/NavigationBar.css.d.ts +7 -0
  132. package/dist/NavigationMenu/ServerNavigation/NavigationBar.css.js +22 -0
  133. package/dist/NavigationMenu/ServerNavigation/SubNavBar.d.ts +6 -0
  134. package/dist/NavigationMenu/ServerNavigation/SubNavBar.js +281 -0
  135. package/dist/NavigationMenu/ServerNavigation/SubNavItem.d.ts +1 -0
  136. package/dist/NavigationMenu/ServerNavigation/SubNavItem.js +317 -0
  137. package/dist/NavigationMenu/ServerNavigation/SubNavbar.css.d.ts +60 -0
  138. package/dist/NavigationMenu/ServerNavigation/SubNavbar.css.js +22 -0
  139. package/dist/NavigationMenu/ServerNavigation/index.d.ts +7 -0
  140. package/dist/NavigationMenu/ServerNavigation/index.js +297 -0
  141. package/dist/NavigationMenu/index.d.ts +2 -0
  142. package/dist/NavigationMenu/index.js +19 -10
  143. package/dist/NavigationMenu/utils.d.ts +480 -0
  144. package/dist/NavigationMenu/utils.js +128 -0
  145. package/dist/PageNavSet/PageNavSet.js +16 -8
  146. package/dist/SecondaryFooter/index.js +8 -1
  147. package/dist/SetContainer/SetContainer.css.d.ts +3 -0
  148. package/dist/SetContainer/SetContainer.js +14 -3
  149. package/dist/SocialMediaBar/iconsRepository.js +8 -3
  150. package/dist/SocialMediaBar/index.js +1 -1
  151. package/dist/StepItemSet/StepItemSet.css.d.ts +3 -0
  152. package/dist/Table/Table.css.d.ts +14 -1
  153. package/dist/Table/Table.css.js +21 -19
  154. package/dist/Table/Table.d.ts +1 -1
  155. package/dist/Table/Table.js +5 -3
  156. package/dist/TopicalNavItem/TopicalNavItem.css.d.ts +0 -1
  157. package/dist/TopicalNavItem/TopicalNavItem.css.js +2 -4
  158. package/dist/TopicalNavItem/TopicalNavItem.js +11 -33
  159. package/dist/TopicalNavItem/index.js +1 -2
  160. package/dist/TopicalNavSet/TopicalNavSet.js +17 -9
  161. package/dist/VideoTile/VideoTile.js +7 -2
  162. package/dist/VideoWrapper/index.js +8 -3
  163. package/dist/assets/Article/Article.css +8 -4
  164. package/dist/assets/ArticlesSet/ArticlesSet.css +54 -39
  165. package/dist/assets/Auth/SignIn.css +2 -1
  166. package/dist/assets/Calculators/ApyCalculatorUserTest/ApyCalculatorUserTest.css +424 -0
  167. package/dist/assets/Calculators/AxosOneCalculator/BalanceAPYCalculator.css +2 -2
  168. package/dist/assets/CallToActionBar/CallToActionBar.css +2 -0
  169. package/dist/assets/Chatbot/AnimatedGradientBorder.css +19 -19
  170. package/dist/assets/Chatbot/Bubble.css +7 -2
  171. package/dist/assets/Chatbot/ChatWindow.css +155 -98
  172. package/dist/assets/Comparison/Comparison.css +32 -29
  173. package/dist/assets/DownloadTile/DownloadTile.css +0 -5
  174. package/dist/assets/ExecutiveBio/ExecutiveBio.css +55 -17
  175. package/dist/assets/FaqAccordion/FaqAccordion.css +1 -1
  176. package/dist/assets/FooterSiteMap/AxosBank/FooterSiteMap.css +2 -2
  177. package/dist/assets/Forms/Forms.css +3 -2
  178. package/dist/assets/HeroBanner/HeroBanner.css +1 -0
  179. package/dist/assets/IconBillboard/IconBillboard.css +64 -13
  180. package/dist/assets/ImageToast/ImageToast.css +39 -0
  181. package/dist/assets/Insight/Featured/Header.css +4 -2
  182. package/dist/assets/NavigationMenu/AxosALTS/NavBar.css +265 -264
  183. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css +609 -609
  184. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css +631 -630
  185. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css +485 -484
  186. package/dist/assets/NavigationMenu/AxosFiduciary/NavBar.css +428 -427
  187. package/dist/assets/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.css +353 -0
  188. package/dist/assets/NavigationMenu/ServerNavigation/NavBar.css +483 -0
  189. package/dist/assets/NavigationMenu/ServerNavigation/NavigationBar.css +40 -0
  190. package/dist/assets/NavigationMenu/ServerNavigation/SubNavbar.css +87 -0
  191. package/dist/assets/SetContainer/SetContainer.css +7 -10
  192. package/dist/assets/SocialMediaBar/SocialMediaBar.css +1 -0
  193. package/dist/assets/StepItemSet/StepItemSet.css +3 -3
  194. package/dist/assets/Table/Table.css +82 -77
  195. package/dist/assets/TopicalNavItem/TopicalNavItem.css +25 -52
  196. package/dist/assets/TopicalNavSet/TopicalNavSet.css +28 -6
  197. package/dist/assets/VideoTile/VideoTile.css +3 -0
  198. package/dist/assets/globals.css +34 -2
  199. package/dist/assets/themes/axos.css +8 -7
  200. package/dist/assets/themes/premier.css +9 -8
  201. package/dist/assets/themes/ufb.css +9 -8
  202. package/dist/assets/themes/victorie.css +9 -8
  203. package/dist/globals.css.js +8 -1
  204. package/dist/icons/QuoteIconGrey.js +1 -0
  205. package/dist/icons/QuoteIconWhite.js +1 -0
  206. package/dist/icons/QuoteIconYellow.js +1 -0
  207. package/dist/index.css.js +8 -1
  208. package/dist/main.js +40 -17
  209. package/dist/themes/axos.css.d.ts +1 -0
  210. package/dist/themes/axos.css.js +1 -1
  211. package/dist/utils/allowedAxosDomains.js +8 -13
  212. package/dist/utils/appendQueryParams.d.ts +3 -1
  213. package/dist/utils/appendQueryParams.js +66 -66
  214. package/dist/utils/index.js +3 -1
  215. package/dist/utils/tealiumOrganicFallback.d.ts +21 -0
  216. package/dist/utils/tealiumOrganicFallback.js +26 -0
  217. package/dist/utils/useVisibility.d.ts +1 -0
  218. package/dist/utils/useVisibility.js +21 -0
  219. package/dist/vite-env.d.js +1 -0
  220. package/package.json +2 -2
  221. package/dist/NavigationMenu/Navbar.d.ts +0 -5
  222. package/dist/NavigationMenu/SignInNavButton.d.ts +0 -1
  223. package/dist/NavigationMenu/SignInNavButton.js +0 -363
  224. package/dist/assets/Chatbot/Chatbot.css +0 -3
@@ -1,4 +1,3 @@
1
- import '../assets/Chatbot/Chatbot.css';/* empty css */
2
1
  var chatbotAXB = "_1hpv6vm0";
3
2
  var chatbotUFB = "_1hpv6vm1";
4
3
  export {
@@ -1,3 +1,6 @@
1
+ import { default as AudioManager } from './AudioManager';
2
+
3
+ export declare const audioManager: AudioManager;
1
4
  export type ChatbotProps = {
2
5
  project?: "axos" | "ufb";
3
6
  debug?: boolean;
@@ -1,22 +1,20 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { usePageVisibility } from "../utils/useVisibility.js";
3
4
  import { useRef, useState, useEffect } from "react";
4
5
  import { useMount, useUnmount } from "react-use";
5
6
  import notificationSound from "../assets/notification.mp3.js";
7
+ import AudioManager from "./AudioManager.js";
6
8
  import { Bubble } from "./Bubble.js";
7
9
  import { chatbotAXB, chatbotUFB } from "./Chatbot.css.js";
8
10
  import { ChatWindow } from "./ChatWindow.js";
9
11
  import { useOpenChat } from "./store/chat.js";
10
12
  import { useMessages } from "./store/messages.js";
11
- if (typeof window !== "undefined") {
12
- const OriginalAudio = window.Audio;
13
- class PatchedAudio extends OriginalAudio {
14
- constructor(src) {
15
- const newSrc = src === "https://websdk.ujet.co/v3/ping.mp3" ? notificationSound : src;
16
- super(newSrc);
17
- }
18
- }
19
- window.Audio = PatchedAudio;
13
+ const audioManager = new AudioManager();
14
+ audioManager.installUjetAudioOverride(notificationSound);
15
+ audioManager.setSoundEnabled(false);
16
+ function isChat(obj) {
17
+ return obj !== null && typeof obj === "object" && "id" in obj && "agent" in obj && typeof obj.connect === "function";
20
18
  }
21
19
  const Chatbot = ({
22
20
  project = "axos",
@@ -25,6 +23,7 @@ const Chatbot = ({
25
23
  config
26
24
  }) => {
27
25
  const {
26
+ isOpen,
28
27
  hasOpenedOnce,
29
28
  toggle,
30
29
  reset,
@@ -32,8 +31,15 @@ const Chatbot = ({
32
31
  hasEscalated,
33
32
  endEscalation,
34
33
  unblockInput,
35
- blockInput
34
+ blockInput,
35
+ hasStarted,
36
+ setChatStarted,
37
+ resetChatStarted,
38
+ setChatStatus,
39
+ displayThankyouMessage,
40
+ hideDisplayThankyouMessage
36
41
  } = useOpenChat();
42
+ const isVisible = usePageVisibility();
37
43
  const { addMessage, addMessages, clearMessages, messages } = useMessages();
38
44
  const clientRef = useRef(null);
39
45
  const menuRef = useRef(null);
@@ -42,7 +48,6 @@ const Chatbot = ({
42
48
  const chatLoading = useRef(false);
43
49
  const agent_virtual = useRef(null);
44
50
  const [status, setStatus] = useState("idle");
45
- const [hasStarted, setHasStarted] = useState(false);
46
51
  const [menusLoaded, setMenusLoaded] = useState(false);
47
52
  const [isTyping, setIsTyping] = useState(false);
48
53
  const [scalationStarted, setScalationStarted] = useState(false);
@@ -72,7 +77,7 @@ const Chatbot = ({
72
77
  $index: -10,
73
78
  $userId: 0
74
79
  };
75
- const custom_data = {
80
+ const custom_data = () => ({
76
81
  unsigned: {
77
82
  facingBrandId: {
78
83
  label: "facingBrandId",
@@ -89,9 +94,13 @@ const Chatbot = ({
89
94
  env: {
90
95
  label: "env",
91
96
  value: projectEnv === "uat" ? "dev" : projectEnv
97
+ },
98
+ url: {
99
+ label: "url",
100
+ value: window.location.href
92
101
  }
93
102
  }
94
- };
103
+ });
95
104
  const onReadyHandler = async () => {
96
105
  console.log("Chat client is ready");
97
106
  if (clientRef.current) {
@@ -259,12 +268,20 @@ const Chatbot = ({
259
268
  };
260
269
  const startChat = async (source) => {
261
270
  const client = clientRef.current;
262
- if (!client) return;
263
- if (hasStarted) return;
271
+ if (!client) {
272
+ console.log(`no client detected`);
273
+ return;
274
+ }
275
+ if (hasStarted) {
276
+ console.log(`has started is ${hasStarted}`);
277
+ return;
278
+ }
279
+ hideDisplayThankyouMessage();
264
280
  if (chatLoading.current) {
265
281
  console.log(`startChat skipped [${source}] — already in progress`);
266
282
  return;
267
283
  }
284
+ setChatStatus("connected");
268
285
  try {
269
286
  console.log(`Starting chat [${source}]`, chatRef.current);
270
287
  chatLoading.current = true;
@@ -299,8 +316,10 @@ const Chatbot = ({
299
316
  if (!foundMenu) {
300
317
  throw new Error("Menu not found: " + menuOption);
301
318
  }
302
- const newChat = await client.createChat(menuId, { custom_data });
303
- if (newChat !== null) {
319
+ const newChat = await client.createChat(menuId, {
320
+ custom_data: custom_data()
321
+ });
322
+ if (newChat && typeof newChat === "object" && isChat(newChat)) {
304
323
  chatRef.current = newChat;
305
324
  agent_virtual.current = newChat.agent;
306
325
  console.log("Chat created id:", newChat.id);
@@ -309,31 +328,29 @@ const Chatbot = ({
309
328
  console.error("Error creating chat:", err);
310
329
  } finally {
311
330
  chatLoading.current = false;
312
- setHasStarted(true);
313
- if (clientRef?.current?.chat?.state?.status == "va_assigned") {
314
- const OriginalAudio = window.Audio;
315
- class PatchedAudio extends OriginalAudio {
316
- constructor(src) {
317
- const newSrc = src === "https://websdk.ujet.co/v3/ping.mp3" ? notificationSound : src;
318
- super(newSrc);
319
- }
320
- }
321
- window.Audio = PatchedAudio;
322
- }
331
+ setChatStarted();
323
332
  }
324
333
  };
325
334
  const handleClick = async () => {
335
+ audioManager.setSoundEnabled(true);
326
336
  toggle();
327
337
  if (hasStarted) return;
328
338
  if (!hasOpenedOnce) {
329
339
  await startChat("bubbleClick");
330
- setHasStarted(true);
340
+ setChatStarted();
331
341
  }
332
342
  };
333
343
  const onSendMessage = async (msg) => {
334
344
  const clientChatId = clientRef.current?.chat?.id;
335
345
  const refChatId = chatRef.current?.id;
336
- console.log("Sending message:", msg, "| client.chat.id:", clientChatId, "| chatRef.id:", refChatId);
346
+ console.log(
347
+ "Sending message:",
348
+ msg,
349
+ "| client.chat.id:",
350
+ clientChatId,
351
+ "| chatRef.id:",
352
+ refChatId
353
+ );
337
354
  try {
338
355
  await clientRef.current?.sendTextMessage(msg);
339
356
  } catch (error) {
@@ -345,15 +362,26 @@ const Chatbot = ({
345
362
  }
346
363
  };
347
364
  const onEndChat = async () => {
348
- console.log("Ending chat");
365
+ console.log(`Ending chat [end chat]`);
349
366
  if (chatRef.current) {
350
- await clientRef.current?.finishChat();
351
- await chatRef.current?.destroy();
352
- clearMessages();
353
- chatRef.current = null;
354
- console.log("Chat ended");
355
- setHasStarted(false);
356
- endEscalation?.();
367
+ try {
368
+ await clientRef.current?.finishChat();
369
+ console.log(`Chat finished`);
370
+ try {
371
+ await chatRef.current?.destroy();
372
+ console.log(`Chat destroyed`);
373
+ clearMessages();
374
+ chatRef.current = null;
375
+ resetChatStarted();
376
+ console.log("Chat ended");
377
+ endEscalation?.();
378
+ } finally {
379
+ setChatStatus("ending");
380
+ displayThankyouMessage();
381
+ }
382
+ } catch (error) {
383
+ console.log(error, "from onEndChat");
384
+ }
357
385
  }
358
386
  };
359
387
  const onEndAndStartNewChat = async () => {
@@ -372,7 +400,7 @@ const Chatbot = ({
372
400
  deregisterEventHandlers();
373
401
  chatLoading.current = false;
374
402
  reset();
375
- setHasStarted(false);
403
+ resetChatStarted();
376
404
  setStatus("idle");
377
405
  clearMessages();
378
406
  endEscalation?.();
@@ -388,7 +416,7 @@ const Chatbot = ({
388
416
  };
389
417
  const onCloseAfterThankYou = async () => {
390
418
  reset();
391
- setHasStarted(false);
419
+ resetChatStarted();
392
420
  newChatSession();
393
421
  };
394
422
  const onPreviewTyping = async (msg) => {
@@ -402,6 +430,49 @@ const Chatbot = ({
402
430
  console.error("Error sending preview message:", error);
403
431
  }
404
432
  };
433
+ useEffect(() => {
434
+ if (chatRef.current) {
435
+ if (isVisible && isOpen) {
436
+ audioManager.setSoundEnabled(false);
437
+ }
438
+ if (isVisible && !isOpen) {
439
+ audioManager.setSoundEnabled(true);
440
+ }
441
+ if (!isVisible) {
442
+ audioManager.setSoundEnabled(true);
443
+ }
444
+ }
445
+ }, [isOpen, isVisible]);
446
+ useMount(() => {
447
+ const hasParams = () => {
448
+ return window.location.search.includes("utm_");
449
+ };
450
+ const tryStart = () => {
451
+ if (hasParams()) {
452
+ startChat("utm-ready");
453
+ return true;
454
+ }
455
+ return false;
456
+ };
457
+ if (tryStart()) return;
458
+ const original = history.replaceState;
459
+ history.replaceState = function(...args) {
460
+ original.apply(this, args);
461
+ if (tryStart()) {
462
+ history.replaceState = original;
463
+ }
464
+ };
465
+ const interval = setInterval(() => {
466
+ if (tryStart()) {
467
+ clearInterval(interval);
468
+ history.replaceState = original;
469
+ }
470
+ }, 100);
471
+ return () => {
472
+ clearInterval(interval);
473
+ history.replaceState = original;
474
+ };
475
+ });
405
476
  return menusLoaded && /* @__PURE__ */ jsxs(
406
477
  "div",
407
478
  {
@@ -428,5 +499,6 @@ const Chatbot = ({
428
499
  );
429
500
  };
430
501
  export {
431
- Chatbot
502
+ Chatbot,
503
+ audioManager
432
504
  };