rohit-chat-widget 1.0.49 → 1.0.51
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/lib/components/MessageBubble/MessageBubble.d.ts.map +1 -1
- package/lib/components/MessageBubble/MessageBubble.js +12 -19
- package/lib/components/MessageBubble/MessageBubble.js.map +1 -1
- package/lib/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/components/MessageInput/MessageInput.js +6 -13
- package/lib/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/index.esm.js +18 -32
- package/lib/index.esm.js.map +1 -1
- package/lib/src/components/MessageBubble/MessageBubble.d.ts.map +1 -1
- package/lib/src/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/styles.css +80 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAsD1B,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA+KtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -13,7 +13,15 @@ const doubleTickIcon = (_jsxs("svg", { style: { marginLeft: "4px" }, width: "14"
|
|
|
13
13
|
function isFileMessage(content) {
|
|
14
14
|
try {
|
|
15
15
|
const obj = JSON.parse(content);
|
|
16
|
-
|
|
16
|
+
if (typeof obj.displayFileName !== 'string') {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
displayFileName: obj.displayFileName,
|
|
21
|
+
azureFileName: typeof obj.azureFileName === 'string' && obj.azureFileName.length > 0
|
|
22
|
+
? obj.azureFileName
|
|
23
|
+
: null
|
|
24
|
+
};
|
|
17
25
|
}
|
|
18
26
|
catch {
|
|
19
27
|
return null;
|
|
@@ -44,19 +52,12 @@ export const MessageBubble = ({ id, message, sender, timestamp, className, isMe,
|
|
|
44
52
|
};
|
|
45
53
|
// Check if message is a file message
|
|
46
54
|
const fileMsg = isFileMessage(message);
|
|
47
|
-
const
|
|
48
|
-
const isPlaceholderFile = !normalizedAzureFileName || normalizedAzureFileName.toLowerCase().startsWith('uploading');
|
|
49
|
-
const canDownload = Boolean(!isPlaceholderFile && normalizedAzureFileName);
|
|
55
|
+
const isFileUploading = Boolean(fileMsg && !fileMsg.azureFileName);
|
|
50
56
|
// Handle file download with SAS URL
|
|
51
57
|
const handleFileDownload = async (azureFileName, displayFileName) => {
|
|
52
58
|
try {
|
|
53
|
-
const normalized = azureFileName?.trim();
|
|
54
|
-
if (!normalized || normalized.toLowerCase().startsWith('uploading')) {
|
|
55
|
-
alert('Attachment is still processing. Please try again in a moment.');
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
59
|
// Step 1: Get SAS URL from the backend using RTK Query
|
|
59
|
-
const result = await getAttachmentSasUrl({ blobUrl:
|
|
60
|
+
const result = await getAttachmentSasUrl({ blobUrl: azureFileName });
|
|
60
61
|
if (result.error) {
|
|
61
62
|
throw new Error('Failed to get download URL');
|
|
62
63
|
}
|
|
@@ -102,15 +103,7 @@ export const MessageBubble = ({ id, message, sender, timestamp, className, isMe,
|
|
|
102
103
|
const datePart = date.toLocaleDateString(undefined, { month: 'long', day: 'numeric', year: 'numeric' });
|
|
103
104
|
return `${datePart} ${timePart}`;
|
|
104
105
|
};
|
|
105
|
-
return (_jsxs("div", { className: `${styles.messageWrapper} ${isMe ? styles.messageWrapperRight : styles.messageWrapperLeft} ${className || ''}`, children: [!isMe && _jsx("div", { className: styles.messageAvatar, children: initials }), _jsxs("div", { className: styles.messageContainer, children: [_jsx("div", { className: styles.senderName, children: isMe ? 'You' : senderName ? senderName : 'Support' }), _jsx("div", { className: `${styles.messageBubble} ${isMe ? styles.userMessage : styles.agentMessage}`, children: _jsx("div", { className: styles.messageText, children: fileMsg ? (_jsxs("div", { className: "
|
|
106
|
-
background: 'none',
|
|
107
|
-
border: 'none',
|
|
108
|
-
cursor: 'pointer',
|
|
109
|
-
marginLeft: 8,
|
|
110
|
-
padding: 4,
|
|
111
|
-
display: 'flex',
|
|
112
|
-
alignItems: 'center'
|
|
113
|
-
}, "aria-label": `Download ${fileMsg.displayFileName}`, children: downloadIcon(isMe ? '#FFFFFF' : '#000000') })) : (_jsx("span", { style: { marginLeft: 8, fontSize: 12, color: '#999' }, children: "Preparing..." }))] })) : (message) }) }), isMe && status === 'failed' ? (_jsxs("div", { className: styles.resendContainer, children: [_jsx("button", { className: styles.resendButton, "aria-label": "Resend message", onClick: handleResend, children: "\u21BB" }), _jsx("span", { className: styles.resendText, role: "button", tabIndex: 0, onClick: handleResend, onKeyPress: (e) => { if (e.key === 'Enter' || e.key === ' ')
|
|
106
|
+
return (_jsxs("div", { className: `${styles.messageWrapper} ${isMe ? styles.messageWrapperRight : styles.messageWrapperLeft} ${className || ''}`, children: [!isMe && _jsx("div", { className: styles.messageAvatar, children: initials }), _jsxs("div", { className: styles.messageContainer, children: [_jsx("div", { className: styles.senderName, children: isMe ? 'You' : senderName ? senderName : 'Support' }), _jsx("div", { className: `${styles.messageBubble} ${isMe ? styles.userMessage : styles.agentMessage}`, children: _jsx("div", { className: styles.messageText, children: fileMsg ? (_jsxs("div", { className: styles.fileMessage, children: [_jsx("span", { children: fileMsg.displayFileName }), isFileUploading ? (_jsxs("div", { className: styles.fileUploadStatus, "aria-live": "polite", children: [_jsx("span", { className: styles.fileUploadSpinner, "aria-hidden": "true" }), _jsx("span", { children: "Uploading..." })] })) : (_jsx("button", { onClick: () => handleFileDownload(fileMsg.azureFileName, fileMsg.displayFileName), className: styles.fileDownloadButton, "aria-label": `Download ${fileMsg.displayFileName}`, children: downloadIcon(isMe ? '#FFFFFF' : '#000000') }))] })) : (message) }) }), isMe && status === 'failed' ? (_jsxs("div", { className: styles.resendContainer, children: [_jsx("button", { className: styles.resendButton, "aria-label": "Resend message", onClick: handleResend, children: "\u21BB" }), _jsx("span", { className: styles.resendText, role: "button", tabIndex: 0, onClick: handleResend, onKeyPress: (e) => { if (e.key === 'Enter' || e.key === ' ')
|
|
114
107
|
handleResend(); }, children: "Message failed to send. Tap to send" })] })) : (timestamp && (_jsxs("div", { className: `${styles.timestamp} ${isMe ? styles.timestampRight : styles.timestampLeft}`, "aria-label": formatDateTime(timestamp), tabIndex: 0, children: [_jsx("span", { children: formatDateTime(timestamp) }), isMe && (isDoubleTickVisible
|
|
115
108
|
? doubleTickIcon
|
|
116
109
|
: singleTickIcon)] })))] }), isMe && _jsx("div", { className: styles.messageAvatar, children: initials })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBubble.js","sourceRoot":"","sources":["../../../src/components/MessageBubble/MessageBubble.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,sCAAsC;AACtC,MAAM,YAAY,GAAG,CAAC,YAAoB,SAAS,EAAE,EAAE,CAAC,CACtD,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,aAC5F,eAAM,CAAC,EAAC,s/BAAs/B,EAAC,IAAI,EAAE,SAAS,GAAI,EAClhC,eAAM,CAAC,EAAC,kwBAAkwB,EAAC,IAAI,EAAE,SAAS,GAAI,IAC1xB,CACP,CAAC;AAGF,MAAM,cAAc,GAAG,CACrB,cAAK,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,YACxH,4BAAgB,SAAS,eAAW,SAAS,EAAC,CAAC,EAAC,sYAAsY,EAAC,IAAI,EAAC,SAAS,GAAG,GACpc,CACP,CAAA;AACD,MAAM,cAAc,GAAG,CACrB,eAAK,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,aAC1H,4BAAgB,SAAS,eAAW,SAAS,EAAC,CAAC,EAAC,oXAAoX,EAAC,IAAI,EAAC,SAAS,GAAG,EACtb,4BAAgB,SAAS,eAAW,SAAS,EAAC,CAAC,EAAC,8WAA8W,EAAC,IAAI,EAAC,SAAS,GAAG,IAC5a,CACP,CAAA;
|
|
1
|
+
{"version":3,"file":"MessageBubble.js","sourceRoot":"","sources":["../../../src/components/MessageBubble/MessageBubble.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAShD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MessageInput.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAShD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyPpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useRef } from 'react';
|
|
3
3
|
import { useChatInit } from '../../hooks';
|
|
4
4
|
import { useDispatch, useSelector } from 'react-redux';
|
|
5
|
-
import { addNewMessage, updateMessageStatus
|
|
5
|
+
import { addNewMessage, updateMessageStatus } from '@/store/slices/messagesSlice';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
7
|
import styles from './MessageInput.module.scss';
|
|
8
8
|
import { selectThread, selectUserInfo } from '@/store';
|
|
@@ -13,7 +13,7 @@ export const MessageInput = ({ disabled = false, className, onMessageSent }) =>
|
|
|
13
13
|
const [selectedFile, setSelectedFile] = useState(null);
|
|
14
14
|
const [fileError, setFileError] = useState(null);
|
|
15
15
|
const fileInputRef = useRef(null);
|
|
16
|
-
const { sendMessage } = useChatInit();
|
|
16
|
+
const { sendMessage, isInitialized, loadMessages } = useChatInit();
|
|
17
17
|
const dispatch = useDispatch();
|
|
18
18
|
const thread = useSelector(selectThread);
|
|
19
19
|
const userInformation = useSelector(selectUserInfo);
|
|
@@ -100,23 +100,16 @@ export const MessageInput = ({ disabled = false, className, onMessageSent }) =>
|
|
|
100
100
|
throw new Error('File upload failed');
|
|
101
101
|
}
|
|
102
102
|
const uploadResult = await uploadResponse.json();
|
|
103
|
-
const uploadedFile = uploadResult?.data?.data || uploadResult?.data;
|
|
104
103
|
console.log('File uploaded successfully:', uploadResult);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
id: tempFileId,
|
|
108
|
-
content: JSON.stringify({
|
|
109
|
-
displayFileName: uploadedFile.displayFileName,
|
|
110
|
-
azureFileName: uploadedFile.azureFileName
|
|
111
|
-
})
|
|
112
|
-
}));
|
|
113
|
-
dispatch(updateMessageStatus({ id: tempFileId, status: 'sent', isDoubleTickVisible: true }));
|
|
114
|
-
}
|
|
104
|
+
// Mark as sent
|
|
105
|
+
dispatch(updateMessageStatus({ id: tempFileId, status: 'sent', isDoubleTickVisible: true }));
|
|
115
106
|
// Clear the file after successful upload
|
|
116
107
|
setSelectedFile(null);
|
|
117
108
|
if (fileInputRef.current) {
|
|
118
109
|
fileInputRef.current.value = '';
|
|
119
110
|
}
|
|
111
|
+
// Reload messages to fetch the actual message from ACS (which will replace our optimistic one)
|
|
112
|
+
await loadMessages();
|
|
120
113
|
onMessageSent?.(true);
|
|
121
114
|
}
|
|
122
115
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.js","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageInput.js","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.esm.js
CHANGED
|
@@ -7050,7 +7050,7 @@ var styles$9 = {"chatContainer":"ChatContainer-module_chatContainer__96ZLx","mes
|
|
|
7050
7050
|
|
|
7051
7051
|
var styles$8 = {"messageList":"MessageList-module_messageList__KNVpc","loadingOverlay":"MessageList-module_loadingOverlay__GMXlG","messagesContainer":"MessageList-module_messagesContainer__ZDIIH","messageBubbleWrapper":"MessageList-module_messageBubbleWrapper__pNM3z","messagesEnd":"MessageList-module_messagesEnd__qYzpz","emptyState":"MessageList-module_emptyState__-x8KC","emptyIcon":"MessageList-module_emptyIcon__oCafg","emptyText":"MessageList-module_emptyText__-85a2","emptySubtext":"MessageList-module_emptySubtext__-RWpt"};
|
|
7052
7052
|
|
|
7053
|
-
var styles$7 = {"messageWrapper":"MessageBubble-module_messageWrapper__SMMZu","messageContainer":"MessageBubble-module_messageContainer__KnPtl","senderName":"MessageBubble-module_senderName__h5pr2","messageBubble":"MessageBubble-module_messageBubble__Vu3D-","messageText":"MessageBubble-module_messageText__D70bc","messageWrapperLeft":"MessageBubble-module_messageWrapperLeft__xv7-7","messageWrapperRight":"MessageBubble-module_messageWrapperRight__CUlgL","messageAvatar":"MessageBubble-module_messageAvatar__sqfKI","userMessage":"MessageBubble-module_userMessage__t1sZf","agentMessage":"MessageBubble-module_agentMessage__tCe5z","timestamp":"MessageBubble-module_timestamp__g--Ep","timestampLeft":"MessageBubble-module_timestampLeft__JhYDx","timestampRight":"MessageBubble-module_timestampRight__q-wih","resendContainer":"MessageBubble-module_resendContainer__TXscy","resendButton":"MessageBubble-module_resendButton__h2uAL","resendText":"MessageBubble-module_resendText__wYm2L"};
|
|
7053
|
+
var styles$7 = {"messageWrapper":"MessageBubble-module_messageWrapper__SMMZu","messageContainer":"MessageBubble-module_messageContainer__KnPtl","senderName":"MessageBubble-module_senderName__h5pr2","messageBubble":"MessageBubble-module_messageBubble__Vu3D-","messageText":"MessageBubble-module_messageText__D70bc","fileMessage":"MessageBubble-module_fileMessage__PxC4W","fileDownloadButton":"MessageBubble-module_fileDownloadButton__Wgjo8","fileUploadStatus":"MessageBubble-module_fileUploadStatus__AsTpJ","fileUploadSpinner":"MessageBubble-module_fileUploadSpinner__qf19y","messageWrapperLeft":"MessageBubble-module_messageWrapperLeft__xv7-7","messageWrapperRight":"MessageBubble-module_messageWrapperRight__CUlgL","messageAvatar":"MessageBubble-module_messageAvatar__sqfKI","userMessage":"MessageBubble-module_userMessage__t1sZf","agentMessage":"MessageBubble-module_agentMessage__tCe5z","timestamp":"MessageBubble-module_timestamp__g--Ep","timestampLeft":"MessageBubble-module_timestampLeft__JhYDx","timestampRight":"MessageBubble-module_timestampRight__q-wih","resendContainer":"MessageBubble-module_resendContainer__TXscy","resendButton":"MessageBubble-module_resendButton__h2uAL","resendText":"MessageBubble-module_resendText__wYm2L"};
|
|
7054
7054
|
|
|
7055
7055
|
/******************************************************************************
|
|
7056
7056
|
Copyright (c) Microsoft Corporation.
|
|
@@ -20580,7 +20580,15 @@ const doubleTickIcon = (jsxs("svg", { style: { marginLeft: "4px" }, width: "14",
|
|
|
20580
20580
|
function isFileMessage(content) {
|
|
20581
20581
|
try {
|
|
20582
20582
|
const obj = JSON.parse(content);
|
|
20583
|
-
|
|
20583
|
+
if (typeof obj.displayFileName !== 'string') {
|
|
20584
|
+
return null;
|
|
20585
|
+
}
|
|
20586
|
+
return {
|
|
20587
|
+
displayFileName: obj.displayFileName,
|
|
20588
|
+
azureFileName: typeof obj.azureFileName === 'string' && obj.azureFileName.length > 0
|
|
20589
|
+
? obj.azureFileName
|
|
20590
|
+
: null
|
|
20591
|
+
};
|
|
20584
20592
|
}
|
|
20585
20593
|
catch {
|
|
20586
20594
|
return null;
|
|
@@ -20611,19 +20619,12 @@ const MessageBubble = ({ id, message, sender, timestamp, className, isMe, status
|
|
|
20611
20619
|
};
|
|
20612
20620
|
// Check if message is a file message
|
|
20613
20621
|
const fileMsg = isFileMessage(message);
|
|
20614
|
-
const
|
|
20615
|
-
const isPlaceholderFile = !normalizedAzureFileName || normalizedAzureFileName.toLowerCase().startsWith('uploading');
|
|
20616
|
-
const canDownload = Boolean(!isPlaceholderFile && normalizedAzureFileName);
|
|
20622
|
+
const isFileUploading = Boolean(fileMsg && !fileMsg.azureFileName);
|
|
20617
20623
|
// Handle file download with SAS URL
|
|
20618
20624
|
const handleFileDownload = async (azureFileName, displayFileName) => {
|
|
20619
20625
|
try {
|
|
20620
|
-
const normalized = azureFileName?.trim();
|
|
20621
|
-
if (!normalized || normalized.toLowerCase().startsWith('uploading')) {
|
|
20622
|
-
alert('Attachment is still processing. Please try again in a moment.');
|
|
20623
|
-
return;
|
|
20624
|
-
}
|
|
20625
20626
|
// Step 1: Get SAS URL from the backend using RTK Query
|
|
20626
|
-
const result = await getAttachmentSasUrl({ blobUrl:
|
|
20627
|
+
const result = await getAttachmentSasUrl({ blobUrl: azureFileName });
|
|
20627
20628
|
if (result.error) {
|
|
20628
20629
|
throw new Error('Failed to get download URL');
|
|
20629
20630
|
}
|
|
@@ -20669,15 +20670,7 @@ const MessageBubble = ({ id, message, sender, timestamp, className, isMe, status
|
|
|
20669
20670
|
const datePart = date.toLocaleDateString(undefined, { month: 'long', day: 'numeric', year: 'numeric' });
|
|
20670
20671
|
return `${datePart} ${timePart}`;
|
|
20671
20672
|
};
|
|
20672
|
-
return (jsxs("div", { className: `${styles$7.messageWrapper} ${isMe ? styles$7.messageWrapperRight : styles$7.messageWrapperLeft} ${className || ''}`, children: [!isMe && jsx("div", { className: styles$7.messageAvatar, children: initials }), jsxs("div", { className: styles$7.messageContainer, children: [jsx("div", { className: styles$7.senderName, children: isMe ? 'You' : senderName ? senderName : 'Support' }), jsx("div", { className: `${styles$7.messageBubble} ${isMe ? styles$7.userMessage : styles$7.agentMessage}`, children: jsx("div", { className: styles$7.messageText, children: fileMsg ? (jsxs("div", { className: "
|
|
20673
|
-
background: 'none',
|
|
20674
|
-
border: 'none',
|
|
20675
|
-
cursor: 'pointer',
|
|
20676
|
-
marginLeft: 8,
|
|
20677
|
-
padding: 4,
|
|
20678
|
-
display: 'flex',
|
|
20679
|
-
alignItems: 'center'
|
|
20680
|
-
}, "aria-label": `Download ${fileMsg.displayFileName}`, children: downloadIcon(isMe ? '#FFFFFF' : '#000000') })) : (jsx("span", { style: { marginLeft: 8, fontSize: 12, color: '#999' }, children: "Preparing..." }))] })) : (message) }) }), isMe && status === 'failed' ? (jsxs("div", { className: styles$7.resendContainer, children: [jsx("button", { className: styles$7.resendButton, "aria-label": "Resend message", onClick: handleResend, children: "\u21BB" }), jsx("span", { className: styles$7.resendText, role: "button", tabIndex: 0, onClick: handleResend, onKeyPress: (e) => { if (e.key === 'Enter' || e.key === ' ')
|
|
20673
|
+
return (jsxs("div", { className: `${styles$7.messageWrapper} ${isMe ? styles$7.messageWrapperRight : styles$7.messageWrapperLeft} ${className || ''}`, children: [!isMe && jsx("div", { className: styles$7.messageAvatar, children: initials }), jsxs("div", { className: styles$7.messageContainer, children: [jsx("div", { className: styles$7.senderName, children: isMe ? 'You' : senderName ? senderName : 'Support' }), jsx("div", { className: `${styles$7.messageBubble} ${isMe ? styles$7.userMessage : styles$7.agentMessage}`, children: jsx("div", { className: styles$7.messageText, children: fileMsg ? (jsxs("div", { className: styles$7.fileMessage, children: [jsx("span", { children: fileMsg.displayFileName }), isFileUploading ? (jsxs("div", { className: styles$7.fileUploadStatus, "aria-live": "polite", children: [jsx("span", { className: styles$7.fileUploadSpinner, "aria-hidden": "true" }), jsx("span", { children: "Uploading..." })] })) : (jsx("button", { onClick: () => handleFileDownload(fileMsg.azureFileName, fileMsg.displayFileName), className: styles$7.fileDownloadButton, "aria-label": `Download ${fileMsg.displayFileName}`, children: downloadIcon(isMe ? '#FFFFFF' : '#000000') }))] })) : (message) }) }), isMe && status === 'failed' ? (jsxs("div", { className: styles$7.resendContainer, children: [jsx("button", { className: styles$7.resendButton, "aria-label": "Resend message", onClick: handleResend, children: "\u21BB" }), jsx("span", { className: styles$7.resendText, role: "button", tabIndex: 0, onClick: handleResend, onKeyPress: (e) => { if (e.key === 'Enter' || e.key === ' ')
|
|
20681
20674
|
handleResend(); }, children: "Message failed to send. Tap to send" })] })) : (timestamp && (jsxs("div", { className: `${styles$7.timestamp} ${isMe ? styles$7.timestampRight : styles$7.timestampLeft}`, "aria-label": formatDateTime(timestamp), tabIndex: 0, children: [jsx("span", { children: formatDateTime(timestamp) }), isMe && (isDoubleTickVisible
|
|
20682
20675
|
? doubleTickIcon
|
|
20683
20676
|
: singleTickIcon)] })))] }), isMe && jsx("div", { className: styles$7.messageAvatar, children: initials })] }));
|
|
@@ -20751,7 +20744,7 @@ const MessageInput = ({ disabled = false, className, onMessageSent }) => {
|
|
|
20751
20744
|
const [selectedFile, setSelectedFile] = useState(null);
|
|
20752
20745
|
const [fileError, setFileError] = useState(null);
|
|
20753
20746
|
const fileInputRef = useRef(null);
|
|
20754
|
-
const { sendMessage } = useChatInit();
|
|
20747
|
+
const { sendMessage, isInitialized, loadMessages } = useChatInit();
|
|
20755
20748
|
const dispatch = useDispatch();
|
|
20756
20749
|
const thread = useSelector(selectThread);
|
|
20757
20750
|
const userInformation = useSelector(selectUserInfo);
|
|
@@ -20838,23 +20831,16 @@ const MessageInput = ({ disabled = false, className, onMessageSent }) => {
|
|
|
20838
20831
|
throw new Error('File upload failed');
|
|
20839
20832
|
}
|
|
20840
20833
|
const uploadResult = await uploadResponse.json();
|
|
20841
|
-
const uploadedFile = uploadResult?.data?.data || uploadResult?.data;
|
|
20842
20834
|
console.log('File uploaded successfully:', uploadResult);
|
|
20843
|
-
|
|
20844
|
-
|
|
20845
|
-
id: tempFileId,
|
|
20846
|
-
content: JSON.stringify({
|
|
20847
|
-
displayFileName: uploadedFile.displayFileName,
|
|
20848
|
-
azureFileName: uploadedFile.azureFileName
|
|
20849
|
-
})
|
|
20850
|
-
}));
|
|
20851
|
-
dispatch(updateMessageStatus({ id: tempFileId, status: 'sent', isDoubleTickVisible: true }));
|
|
20852
|
-
}
|
|
20835
|
+
// Mark as sent
|
|
20836
|
+
dispatch(updateMessageStatus({ id: tempFileId, status: 'sent', isDoubleTickVisible: true }));
|
|
20853
20837
|
// Clear the file after successful upload
|
|
20854
20838
|
setSelectedFile(null);
|
|
20855
20839
|
if (fileInputRef.current) {
|
|
20856
20840
|
fileInputRef.current.value = '';
|
|
20857
20841
|
}
|
|
20842
|
+
// Reload messages to fetch the actual message from ACS (which will replace our optimistic one)
|
|
20843
|
+
await loadMessages();
|
|
20858
20844
|
onMessageSent?.(true);
|
|
20859
20845
|
}
|
|
20860
20846
|
catch (error) {
|