@aslaluroba/help-center-react 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -295,7 +295,6 @@ class ConfigService {
295
295
  return ConfigService.instance;
296
296
  }
297
297
  initialize(config) {
298
- console.log('🔧 Initializing config with:', config);
299
298
  this.config = {
300
299
  baseUrl: config.baseUrl || 'https://babylai.net/api',
301
300
  hubUrl: config.hubUrl || config.baseUrl || 'https://babylai.net/api',
@@ -303,16 +302,13 @@ class ConfigService {
303
302
  apiKey: config.apiKey,
304
303
  getToken: config.getToken,
305
304
  };
306
- console.log('📋 Final config:', this.config);
307
305
  // Initialize API with the getToken function directly
308
306
  if (!this.config.getToken) {
309
307
  throw new Error('getToken function is required in configuration');
310
308
  }
311
- console.log('🌐 Initializing API with baseUrl:', this.config.baseUrl);
312
309
  initializeAPI(this.config.baseUrl || 'https://babylai.net/api', this.config.getToken);
313
310
  // Initialize SignalR
314
311
  const hubUrl = this.config.hubUrl || this.config.baseUrl || 'https://babylai.net/api';
315
- console.log('🔌 Initializing SignalR with hubUrl:', hubUrl);
316
312
  ClientSignalRService.initialize(hubUrl);
317
313
  }
318
314
  getConfig() {
@@ -740,9 +736,9 @@ var SvgEnvelope = function SvgEnvelope(props) {
740
736
 
741
737
  const ChatWindowFooter = (props) => {
742
738
  const { t, dir } = useLocalTranslation();
743
- return (React__default["default"].createElement("footer", { className: "babylai-flex babylai-items-center babylai-gap-2 babylai-relative babylai-rounded-full babylai-bg-white babylai-m-4 md:babylai-m-6 md:babylai-py-3 md:babylai-px-4" },
744
- React__default["default"].createElement("input", { type: "text", value: props.inputMessage, onChange: (e) => props.setInputMessage(e.target.value), onKeyDown: props.handleKeyDown, placeholder: t('homeSdk.placeholder'), className: "babylai-flex-1 babylai-py-2 babylai-px-4 babylai-bg-transparent babylai-outline-none babylai-text-sm" }),
745
- React__default["default"].createElement(Button, { variant: "default", size: "icon", onClick: props.handleSendMessage, disabled: props === null || props === void 0 ? void 0 : props.isLoading, className: "babylai-rounded-full babylai-bg-purple-500 babylai-hover:babylai-bg-purple-600 babylai-w-8 babylai-h-8 babylai-disabled:babylai-opacity-50" },
739
+ return (React__default["default"].createElement("footer", { className: 'babylai-flex babylai-items-center babylai-gap-2 babylai-relative babylai-rounded-full babylai-bg-white babylai-m-4 md:babylai-m-6 md:babylai-py-3 md:babylai-px-4' },
740
+ React__default["default"].createElement("input", { type: 'text', value: props.inputMessage, onChange: (e) => props.setInputMessage(e.target.value), onKeyDown: props.handleKeyDown, placeholder: t('homeSdk.placeholder'), className: 'babylai-flex-1 babylai-py-2 babylai-px-4 babylai-bg-transparent babylai-outline-none babylai-text-sm' }),
741
+ React__default["default"].createElement(Button, { variant: 'default', size: 'icon', onClick: props.handleSendMessage, disabled: (props === null || props === void 0 ? void 0 : props.isLoading) || !props.isSignalRConnected, className: 'babylai-rounded-full babylai-bg-purple-500 babylai-hover:babylai-bg-purple-600 babylai-w-8 babylai-h-8 babylai-disabled:babylai-opacity-50' },
746
742
  React__default["default"].createElement(SvgEnvelope, { className: `babylai-w-4 babylai-h-4 ${dir === 'rtl' ? 'babylai-rotate-270' : ''}` }))));
747
743
  };
748
744
 
@@ -795,7 +791,7 @@ const TypingIndicator = React__default["default"].memo(({ firstHumanAgentIndex }
795
791
  React__default["default"].createElement("p", { className: 'babylai-text-sm babylai-opacity-70' }, "..."))));
796
792
  });
797
793
  TypingIndicator.displayName = 'TypingIndicator';
798
- const ChatWindow = React__default["default"].memo(({ onSendMessage, messages, assistantStatus = 'loading' }) => {
794
+ const ChatWindow = React__default["default"].memo(({ onSendMessage, messages, assistantStatus = 'loading', isSignalRConnected }) => {
799
795
  const [inputMessage, setInputMessage] = React.useState('');
800
796
  const messagesEndRef = React.useRef(null);
801
797
  const scrollTimeoutRef = React.useRef(null);
@@ -835,14 +831,14 @@ const ChatWindow = React__default["default"].memo(({ onSendMessage, messages, as
835
831
  }
836
832
  }, [inputMessage, onSendMessage]);
837
833
  const handleKeyDown = React.useCallback((e) => {
838
- if (e.key === 'Enter' && !e.shiftKey) {
834
+ if (e.key === 'Enter' && !e.shiftKey && isSignalRConnected) {
839
835
  e.preventDefault();
840
836
  if (inputMessage.trim() && assistantStatus !== 'typing') {
841
837
  onSendMessage(inputMessage);
842
838
  setInputMessage('');
843
839
  }
844
840
  }
845
- }, [inputMessage, onSendMessage, assistantStatus]);
841
+ }, [inputMessage, onSendMessage, assistantStatus, isSignalRConnected]);
846
842
  // Memoize the first human agent index calculation
847
843
  const firstHumanAgentIndex = React.useMemo(() => {
848
844
  return messages.findIndex((message) => message.senderType === 2);
@@ -863,7 +859,7 @@ const ChatWindow = React__default["default"].memo(({ onSendMessage, messages, as
863
859
  messagesList,
864
860
  assistantStatus === 'typing' && React__default["default"].createElement(TypingIndicator, { firstHumanAgentIndex: firstHumanAgentIndex }),
865
861
  React__default["default"].createElement("div", { ref: messagesEndRef })),
866
- React__default["default"].createElement(ChatWindowFooter, { inputMessage: inputMessage, handleKeyDown: handleKeyDown, handleSendMessage: handleSendMessage, setInputMessage: setInputMessage, isLoading: isLoading })));
862
+ React__default["default"].createElement(ChatWindowFooter, { inputMessage: inputMessage, handleKeyDown: handleKeyDown, handleSendMessage: handleSendMessage, setInputMessage: setInputMessage, isLoading: isLoading, isSignalRConnected: isSignalRConnected })));
867
863
  });
868
864
  ChatWindow.displayName = 'ChatWindow';
869
865
 
@@ -1126,7 +1122,7 @@ const ConfirmationModal = ({ title, message, onCancel, onConfirm, }) => {
1126
1122
  React__default["default"].createElement(Button, { variant: 'default', size: 'sm', onClick: onConfirm, className: 'babylai-text-sm babylai-w-full !babylai-font-bold' }, t('homeSdk.ConfirmationModal.confirmation_button')),
1127
1123
  React__default["default"].createElement(Button, { variant: 'outline', size: 'sm', onClick: onCancel, className: 'babylai-text-sm babylai-w-full babylai-text-primary-500 !babylai-font-bold' }, t('homeSdk.ConfirmationModal.cancel_button'))))));
1128
1124
  };
1129
- function HelpPopup({ onClose, helpScreen, status, error, onStartChat, onSendMessage, onEndChat, messages, assistantStatus, needsAgent, sessionId, selectedOption, setSelectedOption, showHelpScreen, }) {
1125
+ function HelpPopup({ onClose, helpScreen, status, error, onStartChat, onSendMessage, onEndChat, messages, assistantStatus, needsAgent, sessionId, selectedOption, setSelectedOption, showHelpScreen, isSignalRConnected, }) {
1130
1126
  // ALL HOOKS MUST BE CALLED FIRST - BEFORE ANY EARLY RETURNS
1131
1127
  const [showChat, setShowChat] = React.useState(false);
1132
1128
  const [isShowList, setIsShowList] = React.useState(!showHelpScreen || false);
@@ -1179,7 +1175,7 @@ function HelpPopup({ onClose, helpScreen, status, error, onStartChat, onSendMess
1179
1175
  }
1180
1176
  }, [onStartChat, setSelectedOption, sessionId, setStartNewChatConfirmation, setTempSelectedOption]);
1181
1177
  const handleSendMessage = React.useCallback((message) => {
1182
- if (message.trim()) {
1178
+ if (message.trim() && isSignalRConnected) {
1183
1179
  onSendMessage(message.trim());
1184
1180
  }
1185
1181
  }, [onSendMessage]);
@@ -1208,7 +1204,7 @@ function HelpPopup({ onClose, helpScreen, status, error, onStartChat, onSendMess
1208
1204
  if (showChat && selectedOption) {
1209
1205
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
1210
1206
  React__default["default"].createElement(ChatWindowHeader, { handleBack: handleBack, handleEndChat: showEndChatConfirmation, onClose: onClose, isShowList: isShowList, showChat: showChat, setIsShowList: setIsShowList }),
1211
- React__default["default"].createElement(ChatWindow, { onSendMessage: handleSendMessage, messages: memoizedMessages, assistantStatus: assistantStatus, needsAgent: needsAgent })));
1207
+ React__default["default"].createElement(ChatWindow, { onSendMessage: handleSendMessage, messages: memoizedMessages, assistantStatus: assistantStatus, needsAgent: needsAgent, isSignalRConnected: isSignalRConnected })));
1212
1208
  }
1213
1209
  if (isShowList) {
1214
1210
  return (React__default["default"].createElement(OptionsListScreen, { helpScreen: helpScreen, expandedOption: expandedOption, setExpandedOption: setExpandedOption, handleStartChat: handleStartChat, handleBack: showHelpScreen ? handleBack : onClose, showHelpScreen: showHelpScreen }));
@@ -1296,17 +1292,7 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1296
1292
  setShowArrowAnimation(false);
1297
1293
  };
1298
1294
  const handleReceiveMessage = (message, senderType, needsAgent) => {
1299
- console.log('🎯 Help Center received message:', {
1300
- message,
1301
- senderType,
1302
- needsAgent,
1303
- timestamp: new Date().toISOString(),
1304
- currentSessionId: sessionId,
1305
- isSignalRConnected,
1306
- messagesCount: messages.length,
1307
- });
1308
1295
  if (needsAgent) {
1309
- console.log('🚨 Agent needed for this message');
1310
1296
  setNeedsAgent(true);
1311
1297
  }
1312
1298
  setMessages((prevMessages) => {
@@ -1317,13 +1303,10 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1317
1303
  sentAt: new Date(),
1318
1304
  isSeen: true,
1319
1305
  };
1320
- console.log('✅ Adding message to state:', newMessage);
1321
1306
  const updatedMessages = [...prevMessages, newMessage];
1322
- console.log('📊 Total messages after update:', updatedMessages.length);
1323
1307
  return updatedMessages;
1324
1308
  });
1325
1309
  setAssistantStatus('idle');
1326
- console.log('🔄 Assistant status set to idle');
1327
1310
  };
1328
1311
  const handleEndChat = async (option) => {
1329
1312
  if (!sessionId || !selectedOption)
@@ -1331,6 +1314,7 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1331
1314
  try {
1332
1315
  await ClientSignalRService.stopConnection();
1333
1316
  setIsSignalRConnected(false);
1317
+ setAssistantStatus('idle');
1334
1318
  const response = await apiRequest(`Client/ClientChatSession/${sessionId}/close`, 'POST');
1335
1319
  if (!response.ok)
1336
1320
  throw new Error('Failed to close chat session');
@@ -1342,6 +1326,7 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1342
1326
  catch (error) {
1343
1327
  console.error('Error ending chat:', error);
1344
1328
  setError('Failed to end chat session');
1329
+ setAssistantStatus('idle');
1345
1330
  }
1346
1331
  };
1347
1332
  const handleSendChatReview = async ({ comment, rating }) => {
@@ -1367,6 +1352,9 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1367
1352
  };
1368
1353
  const startNewChatSession = async (option) => {
1369
1354
  var _a;
1355
+ if (isSignalRConnected || sessionId) {
1356
+ handleEndChat();
1357
+ }
1370
1358
  try {
1371
1359
  setStatus('loading');
1372
1360
  setError('');
@@ -1388,14 +1376,12 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1388
1376
  throw new Error('Failed to create chat session');
1389
1377
  }
1390
1378
  const createdSession = await response.json();
1391
- console.log('Created session:', createdSession);
1392
1379
  setSessionId(createdSession.id);
1393
- // Add greeting message if available
1394
1380
  if ((_a = option.assistant) === null || _a === void 0 ? void 0 : _a.greeting) {
1395
1381
  setMessages([
1396
1382
  {
1397
1383
  id: Date.now(),
1398
- senderType: 3, // AI
1384
+ senderType: 3,
1399
1385
  messageContent: option.assistant.greeting,
1400
1386
  sentAt: new Date(),
1401
1387
  isSeen: true,
@@ -1403,7 +1389,6 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1403
1389
  ]);
1404
1390
  }
1405
1391
  else {
1406
- // Default greeting if none provided
1407
1392
  setMessages([
1408
1393
  {
1409
1394
  id: Date.now(),
@@ -1414,36 +1399,38 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1414
1399
  },
1415
1400
  ]);
1416
1401
  }
1417
- // Connect to SignalR
1418
1402
  await ClientSignalRService.startConnection(createdSession.id, tokenResponse, handleReceiveMessage);
1403
+ // Verify the connection is actually active
1404
+ if (!ClientSignalRService.isConnectionActive()) {
1405
+ throw new Error('SignalR connection failed to establish properly');
1406
+ }
1419
1407
  setIsSignalRConnected(true);
1420
1408
  setIsChatClosed(false);
1421
1409
  setStatus('succeeded');
1422
1410
  }
1423
1411
  catch (error) {
1424
- console.error('Chat start error:', error);
1425
1412
  setError(error instanceof Error ? error.message : 'Failed to start chat session');
1426
1413
  setStatus('failed');
1427
1414
  }
1428
1415
  };
1429
1416
  const handleSendMessage = async (message) => {
1417
+ // Only send message if SignalR is connected
1418
+ if (!isSignalRConnected) {
1419
+ setError('Connection lost. Please try again.');
1420
+ return;
1421
+ }
1430
1422
  let currentSessionId = sessionId;
1431
1423
  if (message.trim() !== '') {
1432
1424
  try {
1433
- // Set loading state
1434
1425
  setAssistantStatus('typing');
1435
- // Add user message to the chat immediately
1436
- setMessages((prevMessages) => [
1437
- ...prevMessages,
1438
- {
1439
- id: Date.now(),
1440
- senderType: 1, // Customer
1441
- messageContent: message,
1442
- sentAt: new Date(),
1443
- isSeen: false,
1444
- },
1445
- ]);
1446
- // Create a new chat session if not started yet
1426
+ const userMessage = {
1427
+ id: Date.now(),
1428
+ senderType: 1,
1429
+ messageContent: message,
1430
+ sentAt: new Date(),
1431
+ isSeen: false,
1432
+ };
1433
+ setMessages((prevMessages) => [...prevMessages, userMessage]);
1447
1434
  if (!currentSessionId) {
1448
1435
  const chatSessionCreateDto = {
1449
1436
  helpScreenId: helpScreenId,
@@ -1461,211 +1448,46 @@ function HelpCenter({ helpScreenId, user, showArrow = true, language = 'en', mes
1461
1448
  const createdSession = await response.json();
1462
1449
  setSessionId(createdSession.id);
1463
1450
  currentSessionId = createdSession.id;
1464
- // Connect to SignalR with the new session
1465
1451
  const tokenResponse = await configService.getToken();
1466
1452
  await ClientSignalRService.startConnection(createdSession.id, tokenResponse, handleReceiveMessage);
1467
1453
  setIsSignalRConnected(true);
1468
1454
  }
1469
- // Send the message
1470
1455
  const messageDto = { messageContent: message };
1471
1456
  const response = await apiRequest(`Client/ClientChatSession/${currentSessionId}/send-message`, 'POST', messageDto);
1472
1457
  if (!response.ok) {
1473
1458
  throw new Error('Failed to send message');
1474
1459
  }
1475
- // Update the sent message as seen
1476
1460
  setMessages((prevMessages) => prevMessages.map((msg) => (msg.senderType === 1 && !msg.isSeen ? { ...msg, isSeen: true } : msg)));
1477
1461
  }
1478
1462
  catch (error) {
1479
- console.error('Error in message handling:', error);
1480
1463
  setAssistantStatus('idle');
1481
- setMessages((prevMessages) => [
1482
- ...prevMessages,
1483
- {
1484
- id: Date.now(),
1485
- senderType: 3, // System
1486
- messageContent: 'Failed to send the message. Please try again.\n لم يتم إرسال الرسالة. يرجى المحاولة مرة أخرى.',
1487
- sentAt: new Date(),
1488
- isSeen: true,
1489
- },
1490
- ]);
1464
+ const errorMessage = {
1465
+ id: Date.now(),
1466
+ senderType: 3,
1467
+ messageContent: 'Failed to send the message. Please try again.\n لم يتم إرسال الرسالة. يرجى المحاولة مرة أخرى.',
1468
+ sentAt: new Date(),
1469
+ isSeen: true,
1470
+ };
1471
+ setMessages((prevMessages) => [...prevMessages, errorMessage]);
1491
1472
  }
1492
1473
  }
1493
1474
  };
1494
- // const startNewChatSession = async (option: Option) => {
1495
- // console.log('🚀 Starting new chat session with option:', option);
1496
- // if (isSignalRConnected || sessionId) {
1497
- // console.log('⚠️ Existing connection detected, ending current chat');
1498
- // handleEndChat();
1499
- // }
1500
- // try {
1501
- // setStatus('loading');
1502
- // setError('');
1503
- // setMessages([]);
1504
- // console.log('🔑 Getting token for authentication...');
1505
- // const tokenResponse = await configService.getToken();
1506
- // console.log('✅ Token obtained successfully');
1507
- // const chatSessionCreateDto = {
1508
- // helpScreenId: helpScreenId,
1509
- // optionId: option.id,
1510
- // ...(user && {
1511
- // user: {
1512
- // id: user.id,
1513
- // name: user.name,
1514
- // email: user.email,
1515
- // },
1516
- // }),
1517
- // };
1518
- // console.log('📡 Creating chat session with data:', chatSessionCreateDto);
1519
- // const response = await apiRequest('Client/ClientChatSession/create-session', 'POST', chatSessionCreateDto);
1520
- // if (!response.ok) {
1521
- // throw new Error('Failed to create chat session');
1522
- // }
1523
- // const createdSession = await response.json();
1524
- // console.log('✅ Chat session created:', createdSession);
1525
- // setSessionId(createdSession.id);
1526
- // if (option.assistant?.greeting) {
1527
- // console.log('💬 Adding custom greeting:', option.assistant.greeting);
1528
- // setMessages([
1529
- // {
1530
- // id: Date.now(),
1531
- // senderType: 3,
1532
- // messageContent: option.assistant.greeting,
1533
- // sentAt: new Date(),
1534
- // isSeen: true,
1535
- // },
1536
- // ]);
1537
- // } else {
1538
- // console.log('💬 Adding default greeting');
1539
- // setMessages([
1540
- // {
1541
- // id: Date.now(),
1542
- // senderType: 3,
1543
- // messageContent: 'Hello! How can I assist you today?\nمرحباً! كيف يمكنني مساعدتك اليوم؟',
1544
- // sentAt: new Date(),
1545
- // isSeen: true,
1546
- // },
1547
- // ]);
1548
- // }
1549
- // console.log('🔌 Starting SignalR connection...');
1550
- // await ClientSignalRService.startConnection(createdSession.id, tokenResponse, handleReceiveMessage);
1551
- // console.log('✅ SignalR connection established');
1552
- // // Verify the connection is actually active
1553
- // if (!ClientSignalRService.isConnectionActive()) {
1554
- // throw new Error('SignalR connection failed to establish properly');
1555
- // }
1556
- // setIsSignalRConnected(true);
1557
- // setIsChatClosed(false);
1558
- // setStatus('succeeded');
1559
- // console.log('🎉 Chat session fully initialized and ready');
1560
- // } catch (error) {
1561
- // console.error('❌ Chat start error:', error);
1562
- // setError(error instanceof Error ? error.message : 'Failed to start chat session');
1563
- // setStatus('failed');
1564
- // }
1565
- // };
1566
- // const handleSendMessage = async (message: string) => {
1567
- // console.log('📤 Sending message:', message);
1568
- // console.log('📊 Current state:', {
1569
- // sessionId,
1570
- // isSignalRConnected,
1571
- // messagesCount: messages.length,
1572
- // selectedOptionId: selectedOption?.id,
1573
- // });
1574
- // let currentSessionId = sessionId;
1575
- // if (message.trim() !== '') {
1576
- // try {
1577
- // setAssistantStatus('typing');
1578
- // console.log('⏳ Assistant status set to typing');
1579
- // const userMessage = {
1580
- // id: Date.now(),
1581
- // senderType: 1,
1582
- // messageContent: message,
1583
- // sentAt: new Date(),
1584
- // isSeen: false,
1585
- // };
1586
- // console.log('✅ Adding user message to UI:', userMessage);
1587
- // setMessages((prevMessages) => [...prevMessages, userMessage]);
1588
- // if (!currentSessionId) {
1589
- // console.log('🆕 No existing session, creating new one...');
1590
- // const chatSessionCreateDto = {
1591
- // helpScreenId: helpScreenId,
1592
- // optionId: selectedOption?.id,
1593
- // user: {
1594
- // id: user?.id,
1595
- // name: user?.name,
1596
- // email: user?.email,
1597
- // },
1598
- // };
1599
- // console.log('📡 Creating new session with data:', chatSessionCreateDto);
1600
- // const response = await apiRequest('Client/ClientChatSession/create-session', 'POST', chatSessionCreateDto);
1601
- // if (!response.ok) {
1602
- // throw new Error('Failed to create chat session');
1603
- // }
1604
- // const createdSession = await response.json();
1605
- // console.log('✅ New session created:', createdSession);
1606
- // setSessionId(createdSession.id);
1607
- // currentSessionId = createdSession.id;
1608
- // console.log('🔌 Starting SignalR connection for new session...');
1609
- // const tokenResponse = await configService.getToken();
1610
- // await ClientSignalRService.startConnection(createdSession.id, tokenResponse, handleReceiveMessage);
1611
- // setIsSignalRConnected(true);
1612
- // console.log('✅ SignalR connection established for new session');
1613
- // }
1614
- // const messageDto = { messageContent: message };
1615
- // console.log('📡 Sending message to API:', messageDto);
1616
- // console.log('🎯 Target endpoint:', `Client/ClientChatSession/${currentSessionId}/send-message`);
1617
- // const response = await apiRequest(
1618
- // `Client/ClientChatSession/${currentSessionId}/send-message`,
1619
- // 'POST',
1620
- // messageDto
1621
- // );
1622
- // if (!response.ok) {
1623
- // throw new Error('Failed to send message');
1624
- // }
1625
- // console.log('✅ Message sent successfully to server');
1626
- // console.log('⏳ Waiting for SignalR response...');
1627
- // setMessages((prevMessages) =>
1628
- // prevMessages.map((msg) => (msg.senderType === 1 && !msg.isSeen ? { ...msg, isSeen: true } : msg))
1629
- // );
1630
- // console.log('✅ User message marked as seen');
1631
- // } catch (error) {
1632
- // console.error('❌ Error in message handling:', error);
1633
- // setAssistantStatus('idle');
1634
- // const errorMessage = {
1635
- // id: Date.now(),
1636
- // senderType: 3,
1637
- // messageContent:
1638
- // 'Failed to send the message. Please try again.\n لم يتم إرسال الرسالة. يرجى المحاولة مرة أخرى.',
1639
- // sentAt: new Date(),
1640
- // isSeen: true,
1641
- // };
1642
- // console.log('📨 Adding error message:', errorMessage);
1643
- // setMessages((prevMessages) => [...prevMessages, errorMessage]);
1644
- // }
1645
- // }
1646
- // };
1647
1475
  React.useEffect(() => {
1648
1476
  if (isOpen && helpScreenId) {
1649
- console.log('📊 Loading help screen data for ID:', helpScreenId);
1650
1477
  setStatus('loading');
1651
1478
  apiRequest(`client/clientHelpScreen/${helpScreenId}`)
1652
1479
  .then((res) => res.json())
1653
1480
  .then((data) => {
1654
- console.log('✅ Help screen data loaded:', data);
1655
1481
  setHelpScreenData(data);
1656
1482
  setStatus('succeeded');
1657
1483
  setError('');
1658
1484
  })
1659
1485
  .catch((err) => {
1660
- console.error('❌ Failed to load help screen data:', err);
1661
1486
  setError(err.message);
1662
1487
  setStatus('failed');
1663
1488
  });
1664
1489
  }
1665
1490
  }, [isOpen, helpScreenId]);
1666
- React.useEffect(() => {
1667
- console.log('🔄 SignalR connection status', isSignalRConnected);
1668
- }, [isSignalRConnected]);
1669
1491
  return (React__default["default"].createElement("div", { className: 'babylai-help-center-container mb-4' },
1670
1492
  showArrowAnimation && !isOpen && (React__default["default"].createElement(FloatingMessage, { onClose: handleCloseArrowAnimation, message: messageLabel || t('homeSdk.needAssistance') })),
1671
1493
  React__default["default"].createElement(HelpButton, { onClick: handleTogglePopup }),