rohit-chat-widget 1.0.7 → 1.0.9
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/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/components/MessageInput/MessageInput.js +54 -24
- package/lib/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/index.esm.js +55 -25
- package/lib/index.esm.js.map +1 -1
- package/lib/services/api/backendApi.d.ts +4 -0
- package/lib/services/api/backendApi.d.ts.map +1 -1
- package/lib/services/api/backendApi.js +1 -0
- package/lib/services/api/backendApi.js.map +1 -1
- package/lib/services/api/index.d.ts +1 -1
- package/lib/services/api/index.d.ts.map +1 -1
- package/lib/services/api/index.js +1 -1
- package/lib/services/api/index.js.map +1 -1
- package/lib/src/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/src/services/api/backendApi.d.ts +4 -0
- package/lib/src/services/api/backendApi.d.ts.map +1 -1
- package/lib/src/services/api/index.d.ts +1 -1
- package/lib/src/services/api/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;
|
|
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,CAiMpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -6,6 +6,7 @@ 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';
|
|
9
|
+
import { getApiConfig } from '@/services/api/backendApi';
|
|
9
10
|
export const MessageInput = ({ disabled = false, className, onMessageSent }) => {
|
|
10
11
|
const [message, setMessage] = useState('');
|
|
11
12
|
const [isSending, setIsSending] = useState(false);
|
|
@@ -47,41 +48,70 @@ export const MessageInput = ({ disabled = false, className, onMessageSent }) =>
|
|
|
47
48
|
};
|
|
48
49
|
const handleSubmit = async (e) => {
|
|
49
50
|
e.preventDefault();
|
|
50
|
-
if (!message.trim() || disabled || isSending)
|
|
51
|
+
if ((!message.trim() && !selectedFile) || disabled || isSending)
|
|
51
52
|
return;
|
|
52
53
|
// Prevent submission on Shift+Enter
|
|
53
54
|
if (e.nativeEvent instanceof KeyboardEvent && e.nativeEvent.shiftKey)
|
|
54
55
|
return;
|
|
55
|
-
const tempId = `local-${uuidv4()}`;
|
|
56
|
-
// Optimistically add pending message to store so it appears in the list
|
|
57
|
-
dispatch(addNewMessage({
|
|
58
|
-
id: tempId,
|
|
59
|
-
content: message.trim(),
|
|
60
|
-
senderDisplayName: userInformation?.firstName + " " + userInformation?.lastName || 'You',
|
|
61
|
-
senderACSId: thread.acsUserId,
|
|
62
|
-
version: 1,
|
|
63
|
-
createdOn: new Date().toISOString(),
|
|
64
|
-
updatedOn: new Date().toISOString(),
|
|
65
|
-
status: 'pending',
|
|
66
|
-
isDoubleTickVisible: false
|
|
67
|
-
}));
|
|
68
|
-
setMessage('');
|
|
69
56
|
setIsSending(true);
|
|
70
57
|
try {
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
58
|
+
// If there's a file, upload it first
|
|
59
|
+
if (selectedFile) {
|
|
60
|
+
const formData = new FormData();
|
|
61
|
+
formData.append('file', selectedFile);
|
|
62
|
+
formData.append('threadId', thread.threadId);
|
|
63
|
+
formData.append('acsToken', thread.acsAccessToken);
|
|
64
|
+
const apiConfig = getApiConfig();
|
|
65
|
+
const uploadUrl = `${apiConfig.baseUrl}/chat/send-attachment`;
|
|
66
|
+
const uploadResponse = await fetch(uploadUrl, {
|
|
67
|
+
method: 'POST',
|
|
68
|
+
headers: {
|
|
69
|
+
'api_secret_key': apiConfig.apiKey,
|
|
70
|
+
},
|
|
71
|
+
body: formData,
|
|
72
|
+
});
|
|
73
|
+
if (!uploadResponse.ok) {
|
|
74
|
+
throw new Error('File upload failed');
|
|
75
|
+
}
|
|
76
|
+
const uploadResult = await uploadResponse.json();
|
|
77
|
+
console.log('File uploaded successfully:', uploadResult);
|
|
78
|
+
// Clear the file after successful upload
|
|
79
|
+
setSelectedFile(null);
|
|
80
|
+
if (fileInputRef.current) {
|
|
81
|
+
fileInputRef.current.value = '';
|
|
82
|
+
}
|
|
74
83
|
onMessageSent?.(true);
|
|
75
84
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
// If there's a text message, send it
|
|
86
|
+
if (message.trim()) {
|
|
87
|
+
const tempId = `local-${uuidv4()}`;
|
|
88
|
+
// Optimistically add pending message to store so it appears in the list
|
|
89
|
+
dispatch(addNewMessage({
|
|
90
|
+
id: tempId,
|
|
91
|
+
content: message.trim(),
|
|
92
|
+
senderDisplayName: userInformation?.firstName + " " + userInformation?.lastName || 'You',
|
|
93
|
+
senderACSId: thread.acsUserId,
|
|
94
|
+
version: 1,
|
|
95
|
+
createdOn: new Date().toISOString(),
|
|
96
|
+
updatedOn: new Date().toISOString(),
|
|
97
|
+
status: 'pending',
|
|
98
|
+
isDoubleTickVisible: false
|
|
99
|
+
}));
|
|
100
|
+
setMessage('');
|
|
101
|
+
const result = await sendMessage(message.trim());
|
|
102
|
+
if (result.success) {
|
|
103
|
+
dispatch(updateMessageStatus({ id: tempId, status: 'sent', isDoubleTickVisible: true }));
|
|
104
|
+
onMessageSent?.(true);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.error('Failed to send message:', result.error);
|
|
108
|
+
dispatch(updateMessageStatus({ id: tempId, status: 'failed' }));
|
|
109
|
+
onMessageSent?.(false);
|
|
110
|
+
}
|
|
80
111
|
}
|
|
81
112
|
}
|
|
82
113
|
catch (error) {
|
|
83
|
-
console.error('Error sending
|
|
84
|
-
dispatch(updateMessageStatus({ id: tempId, status: 'failed' }));
|
|
114
|
+
console.error('Error sending:', error);
|
|
85
115
|
onMessageSent?.(false);
|
|
86
116
|
}
|
|
87
117
|
finally {
|
|
@@ -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,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
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
|
@@ -6958,6 +6958,7 @@ const updateApiConfig = (baseUrl, apiKey) => {
|
|
|
6958
6958
|
globalConfig.baseUrl = baseUrl;
|
|
6959
6959
|
globalConfig.apiKey = apiKey;
|
|
6960
6960
|
};
|
|
6961
|
+
const getApiConfig = () => globalConfig;
|
|
6961
6962
|
const backendApi = createApi({
|
|
6962
6963
|
reducerPath: 'backendApi',
|
|
6963
6964
|
baseQuery: fetchBaseQuery({
|
|
@@ -20770,41 +20771,70 @@ const MessageInput = ({ disabled = false, className, onMessageSent }) => {
|
|
|
20770
20771
|
};
|
|
20771
20772
|
const handleSubmit = async (e) => {
|
|
20772
20773
|
e.preventDefault();
|
|
20773
|
-
if (!message.trim() || disabled || isSending)
|
|
20774
|
+
if ((!message.trim() && !selectedFile) || disabled || isSending)
|
|
20774
20775
|
return;
|
|
20775
20776
|
// Prevent submission on Shift+Enter
|
|
20776
20777
|
if (e.nativeEvent instanceof KeyboardEvent && e.nativeEvent.shiftKey)
|
|
20777
20778
|
return;
|
|
20778
|
-
const tempId = `local-${v4()}`;
|
|
20779
|
-
// Optimistically add pending message to store so it appears in the list
|
|
20780
|
-
dispatch(addNewMessage({
|
|
20781
|
-
id: tempId,
|
|
20782
|
-
content: message.trim(),
|
|
20783
|
-
senderDisplayName: userInformation?.firstName + " " + userInformation?.lastName || 'You',
|
|
20784
|
-
senderACSId: thread.acsUserId,
|
|
20785
|
-
version: 1,
|
|
20786
|
-
createdOn: new Date().toISOString(),
|
|
20787
|
-
updatedOn: new Date().toISOString(),
|
|
20788
|
-
status: 'pending',
|
|
20789
|
-
isDoubleTickVisible: false
|
|
20790
|
-
}));
|
|
20791
|
-
setMessage('');
|
|
20792
20779
|
setIsSending(true);
|
|
20793
20780
|
try {
|
|
20794
|
-
|
|
20795
|
-
if (
|
|
20796
|
-
|
|
20781
|
+
// If there's a file, upload it first
|
|
20782
|
+
if (selectedFile) {
|
|
20783
|
+
const formData = new FormData();
|
|
20784
|
+
formData.append('file', selectedFile);
|
|
20785
|
+
formData.append('threadId', thread.threadId);
|
|
20786
|
+
formData.append('acsToken', thread.acsAccessToken);
|
|
20787
|
+
const apiConfig = getApiConfig();
|
|
20788
|
+
const uploadUrl = `${apiConfig.baseUrl}/chat/send-attachment`;
|
|
20789
|
+
const uploadResponse = await fetch(uploadUrl, {
|
|
20790
|
+
method: 'POST',
|
|
20791
|
+
headers: {
|
|
20792
|
+
'api_secret_key': apiConfig.apiKey,
|
|
20793
|
+
},
|
|
20794
|
+
body: formData,
|
|
20795
|
+
});
|
|
20796
|
+
if (!uploadResponse.ok) {
|
|
20797
|
+
throw new Error('File upload failed');
|
|
20798
|
+
}
|
|
20799
|
+
const uploadResult = await uploadResponse.json();
|
|
20800
|
+
console.log('File uploaded successfully:', uploadResult);
|
|
20801
|
+
// Clear the file after successful upload
|
|
20802
|
+
setSelectedFile(null);
|
|
20803
|
+
if (fileInputRef.current) {
|
|
20804
|
+
fileInputRef.current.value = '';
|
|
20805
|
+
}
|
|
20797
20806
|
onMessageSent?.(true);
|
|
20798
20807
|
}
|
|
20799
|
-
|
|
20800
|
-
|
|
20801
|
-
|
|
20802
|
-
|
|
20808
|
+
// If there's a text message, send it
|
|
20809
|
+
if (message.trim()) {
|
|
20810
|
+
const tempId = `local-${v4()}`;
|
|
20811
|
+
// Optimistically add pending message to store so it appears in the list
|
|
20812
|
+
dispatch(addNewMessage({
|
|
20813
|
+
id: tempId,
|
|
20814
|
+
content: message.trim(),
|
|
20815
|
+
senderDisplayName: userInformation?.firstName + " " + userInformation?.lastName || 'You',
|
|
20816
|
+
senderACSId: thread.acsUserId,
|
|
20817
|
+
version: 1,
|
|
20818
|
+
createdOn: new Date().toISOString(),
|
|
20819
|
+
updatedOn: new Date().toISOString(),
|
|
20820
|
+
status: 'pending',
|
|
20821
|
+
isDoubleTickVisible: false
|
|
20822
|
+
}));
|
|
20823
|
+
setMessage('');
|
|
20824
|
+
const result = await sendMessage(message.trim());
|
|
20825
|
+
if (result.success) {
|
|
20826
|
+
dispatch(updateMessageStatus({ id: tempId, status: 'sent', isDoubleTickVisible: true }));
|
|
20827
|
+
onMessageSent?.(true);
|
|
20828
|
+
}
|
|
20829
|
+
else {
|
|
20830
|
+
console.error('Failed to send message:', result.error);
|
|
20831
|
+
dispatch(updateMessageStatus({ id: tempId, status: 'failed' }));
|
|
20832
|
+
onMessageSent?.(false);
|
|
20833
|
+
}
|
|
20803
20834
|
}
|
|
20804
20835
|
}
|
|
20805
20836
|
catch (error) {
|
|
20806
|
-
console.error('Error sending
|
|
20807
|
-
dispatch(updateMessageStatus({ id: tempId, status: 'failed' }));
|
|
20837
|
+
console.error('Error sending:', error);
|
|
20808
20838
|
onMessageSent?.(false);
|
|
20809
20839
|
}
|
|
20810
20840
|
finally {
|
|
@@ -21165,5 +21195,5 @@ const applyDefaultTheme = () => {
|
|
|
21165
21195
|
styleManager.setTheme(defaultTheme);
|
|
21166
21196
|
};
|
|
21167
21197
|
|
|
21168
|
-
export { ChatContainer, ChatHeader, ChatService, ChatWidget, DropdownMenu, ErrorBoundary, ErrorDisplay, LoadingIndicator, MenuItem, MessageBubble, MessageInput, MessageList, StyleManager, acsClientService, addNewMessage, applyDefaultTheme, backendApi, backendApi$1 as backendApiReducer, chatService, clearError, ChatWidget as default, defaultTheme, finishInitialization, formatDate, formatTime, getRelativeTime, isValidUUID, resetMessages, sanitizeInput, selectContinuationToken, selectError, selectIsInitialized, selectIsInitializing, selectIsLoadingPage, selectMessages, setContinuationToken, setError, setIsInitialized, setPageMessages, startInitialization, startLoadingPage, store, useAppDispatch, useAppSelector, useChatInit, useGetMessagesQuery, useInitiateChatMutation, useLazyGetMessagesQuery, useSendMessageMutation, validateEmail, validateMessage };
|
|
21198
|
+
export { ChatContainer, ChatHeader, ChatService, ChatWidget, DropdownMenu, ErrorBoundary, ErrorDisplay, LoadingIndicator, MenuItem, MessageBubble, MessageInput, MessageList, StyleManager, acsClientService, addNewMessage, applyDefaultTheme, backendApi, backendApi$1 as backendApiReducer, chatService, clearError, ChatWidget as default, defaultTheme, finishInitialization, formatDate, formatTime, getApiConfig, getRelativeTime, isValidUUID, resetMessages, sanitizeInput, selectContinuationToken, selectError, selectIsInitialized, selectIsInitializing, selectIsLoadingPage, selectMessages, setContinuationToken, setError, setIsInitialized, setPageMessages, startInitialization, startLoadingPage, store, useAppDispatch, useAppSelector, useChatInit, useGetMessagesQuery, useInitiateChatMutation, useLazyGetMessagesQuery, useSendMessageMutation, validateEmail, validateMessage };
|
|
21169
21199
|
//# sourceMappingURL=index.esm.js.map
|