@memori.ai/memori-react 8.11.0 → 8.13.0
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/CHANGELOG.md +74 -0
- package/dist/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/dist/components/Auth/Auth.js +36 -8
- package/dist/components/Auth/Auth.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
- package/dist/components/Chat/Chat.css +37 -3
- package/dist/components/Chat/Chat.js +61 -23
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.css +87 -15
- package/dist/components/ChatBubble/ChatBubble.js +129 -19
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/dist/components/ChatInputs/ChatInputs.css +293 -17
- package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
- package/dist/components/ChatInputs/ChatInputs.js +48 -27
- package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
- package/dist/components/ChatTextArea/ChatTextArea.css +75 -31
- package/dist/components/ChatTextArea/ChatTextArea.js +47 -18
- package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
- package/dist/components/DateSelector/DateSelector.css +125 -104
- package/dist/components/DateSelector/DateSelector.d.ts +1 -1
- package/dist/components/DateSelector/DateSelector.js +110 -52
- package/dist/components/DateSelector/DateSelector.js.map +1 -1
- package/dist/components/FilePreview/FilePreview.css +225 -146
- package/dist/components/FilePreview/FilePreview.d.ts +1 -2
- package/dist/components/FilePreview/FilePreview.js +20 -6
- package/dist/components/FilePreview/FilePreview.js.map +1 -1
- package/dist/components/Header/Header.css +2 -2
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/LoginDrawer/LoginDrawer.css +37 -5
- package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -2
- package/dist/components/LoginDrawer/LoginDrawer.js +2 -9
- package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
- package/dist/components/MediaWidget/MediaItemWidget.js +2 -1
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.css +11 -2
- package/dist/components/MemoriWidget/MemoriWidget.js +105 -25
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/MicrophoneButton/MicrophoneButton.css +2 -2
- package/dist/components/StartPanel/StartPanel.css +8 -0
- package/dist/components/UploadButton/UploadButton.css +20 -17
- package/dist/components/UploadButton/UploadButton.js +218 -87
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/dist/components/UploadButton/UploadImages/UploadImages.js +143 -16
- package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
- package/dist/components/layouts/chat.css +1 -1
- package/dist/components/ui/Drawer.css +8 -0
- package/dist/components/ui/Drawer.d.ts +2 -0
- package/dist/components/ui/Drawer.js +2 -2
- package/dist/components/ui/Drawer.js.map +1 -1
- package/dist/components/ui/Tooltip.css +49 -1
- package/dist/components/ui/Tooltip.d.ts +1 -1
- package/dist/helpers/constants.d.ts +1 -0
- package/dist/helpers/constants.js +2 -1
- package/dist/helpers/constants.js.map +1 -1
- package/dist/helpers/imageCompression.d.ts +7 -0
- package/dist/helpers/imageCompression.js +123 -0
- package/dist/helpers/imageCompression.js.map +1 -0
- package/dist/locales/de.json +13 -5
- package/dist/locales/en.json +17 -6
- package/dist/locales/es.json +13 -5
- package/dist/locales/fr.json +12 -5
- package/dist/locales/it.json +16 -6
- package/dist/styles.css +4 -4
- package/esm/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/esm/components/Auth/Auth.js +36 -8
- package/esm/components/Auth/Auth.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
- package/esm/components/Chat/Chat.css +37 -3
- package/esm/components/Chat/Chat.js +61 -23
- package/esm/components/Chat/Chat.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.css +87 -15
- package/esm/components/ChatBubble/ChatBubble.js +130 -20
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/esm/components/ChatInputs/ChatInputs.css +293 -17
- package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
- package/esm/components/ChatInputs/ChatInputs.js +49 -28
- package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
- package/esm/components/ChatTextArea/ChatTextArea.css +75 -31
- package/esm/components/ChatTextArea/ChatTextArea.js +49 -20
- package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
- package/esm/components/DateSelector/DateSelector.css +125 -104
- package/esm/components/DateSelector/DateSelector.d.ts +1 -1
- package/esm/components/DateSelector/DateSelector.js +111 -52
- package/esm/components/DateSelector/DateSelector.js.map +1 -1
- package/esm/components/FilePreview/FilePreview.css +225 -146
- package/esm/components/FilePreview/FilePreview.d.ts +1 -2
- package/esm/components/FilePreview/FilePreview.js +21 -7
- package/esm/components/FilePreview/FilePreview.js.map +1 -1
- package/esm/components/Header/Header.css +2 -2
- package/esm/components/Header/Header.js +1 -1
- package/esm/components/Header/Header.js.map +1 -1
- package/esm/components/LoginDrawer/LoginDrawer.css +37 -5
- package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -2
- package/esm/components/LoginDrawer/LoginDrawer.js +2 -9
- package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
- package/esm/components/MediaWidget/MediaItemWidget.js +2 -1
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.css +11 -2
- package/esm/components/MemoriWidget/MemoriWidget.js +105 -25
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/MicrophoneButton/MicrophoneButton.css +2 -2
- package/esm/components/StartPanel/StartPanel.css +8 -0
- package/esm/components/UploadButton/UploadButton.css +20 -17
- package/esm/components/UploadButton/UploadButton.js +219 -88
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/esm/components/UploadButton/UploadImages/UploadImages.js +143 -16
- package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
- package/esm/components/layouts/chat.css +1 -1
- package/esm/components/ui/Drawer.css +8 -0
- package/esm/components/ui/Drawer.d.ts +2 -0
- package/esm/components/ui/Drawer.js +2 -2
- package/esm/components/ui/Drawer.js.map +1 -1
- package/esm/components/ui/Tooltip.css +49 -1
- package/esm/components/ui/Tooltip.d.ts +1 -1
- package/esm/helpers/constants.d.ts +1 -0
- package/esm/helpers/constants.js +1 -0
- package/esm/helpers/constants.js.map +1 -1
- package/esm/helpers/imageCompression.d.ts +7 -0
- package/esm/helpers/imageCompression.js +119 -0
- package/esm/helpers/imageCompression.js.map +1 -0
- package/esm/locales/de.json +13 -5
- package/esm/locales/en.json +17 -6
- package/esm/locales/es.json +13 -5
- package/esm/locales/fr.json +12 -5
- package/esm/locales/it.json +16 -6
- package/esm/styles.css +4 -4
- package/package.json +2 -2
- package/src/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
- package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +3 -1
- package/src/components/Auth/Auth.tsx +55 -11
- package/src/components/Avatar/Avatar.stories.tsx +3 -0
- package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
- package/src/components/Chat/Chat.css +37 -3
- package/src/components/Chat/Chat.stories.tsx +16 -2
- package/src/components/Chat/Chat.tsx +90 -21
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1752 -812
- package/src/components/ChatBubble/ChatBubble.css +87 -15
- package/src/components/ChatBubble/ChatBubble.stories.tsx +16 -2
- package/src/components/ChatBubble/ChatBubble.test.tsx +17 -0
- package/src/components/ChatBubble/ChatBubble.tsx +237 -33
- package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +304 -8
- package/src/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/src/components/ChatInputs/ChatInputs.css +293 -17
- package/src/components/ChatInputs/ChatInputs.tsx +156 -86
- package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +430 -424
- package/src/components/ChatTextArea/ChatTextArea.css +75 -31
- package/src/components/ChatTextArea/ChatTextArea.test.tsx +1 -16
- package/src/components/ChatTextArea/ChatTextArea.tsx +51 -22
- package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +9 -72
- package/src/components/DateSelector/DateSelector.css +125 -104
- package/src/components/DateSelector/DateSelector.stories.tsx +1 -1
- package/src/components/DateSelector/DateSelector.test.tsx +137 -23
- package/src/components/DateSelector/DateSelector.tsx +203 -177
- package/src/components/FilePreview/FilePreview.css +225 -146
- package/src/components/FilePreview/FilePreview.tsx +49 -36
- package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +2 -2
- package/src/components/Header/Header.css +2 -2
- package/src/components/Header/Header.stories.tsx +5 -1
- package/src/components/Header/Header.tsx +1 -1
- package/src/components/Header/__snapshots__/Header.test.tsx.snap +1 -1
- package/src/components/LoginDrawer/LoginDrawer.css +37 -5
- package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -1
- package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -1
- package/src/components/LoginDrawer/LoginDrawer.tsx +0 -19
- package/src/components/MediaWidget/MediaItemWidget.tsx +2 -1
- package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +996 -204
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +2 -2
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +1 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +3 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +56 -54
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +12 -3
- package/src/components/MemoriWidget/MemoriWidget.css +11 -2
- package/src/components/MemoriWidget/MemoriWidget.stories.tsx +6 -3
- package/src/components/MemoriWidget/MemoriWidget.tsx +173 -49
- package/src/components/MicrophoneButton/MicrophoneButton.css +2 -2
- package/src/components/StartPanel/StartPanel.css +8 -0
- package/src/components/UploadButton/UploadButton.css +20 -17
- package/src/components/UploadButton/UploadButton.stories.tsx +247 -35
- package/src/components/UploadButton/UploadButton.tsx +280 -173
- package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +19 -4
- package/src/components/UploadButton/UploadImages/UploadImages.tsx +196 -35
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -1
- package/src/components/layouts/FullBody/FullBody.stories.tsx +9 -10
- package/src/components/layouts/Totem/Totem.stories.tsx +8 -9
- package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +8 -9
- package/src/components/layouts/chat.css +1 -1
- package/src/components/layouts/layouts.stories.tsx +10 -9
- package/src/components/ui/Drawer.css +8 -0
- package/src/components/ui/Drawer.tsx +16 -12
- package/src/components/ui/Tooltip.css +49 -1
- package/src/components/ui/Tooltip.tsx +1 -1
- package/src/helpers/constants.ts +1 -1
- package/src/helpers/imageCompression.ts +230 -0
- package/src/index.stories.tsx +18 -0
- package/src/locales/de.json +13 -5
- package/src/locales/en.json +17 -6
- package/src/locales/es.json +13 -5
- package/src/locales/fr.json +12 -5
- package/src/locales/it.json +16 -6
- package/src/mocks/data.ts +4 -2
- package/src/styles.css +4 -4
- package/src/components/SignupForm/SignupForm.test.tsx +0 -40
- package/src/components/SignupForm/SignupForm.tsx +0 -457
- package/src/components/SignupForm/__snapshots__/SignupForm.test.tsx.snap +0 -247
- package/src/components/UploadMenu/UploadMenu.css +0 -47
- package/src/components/UploadMenu/UploadMenu.stories.tsx +0 -66
- package/src/components/UploadMenu/UploadMenu.test.tsx +0 -34
- package/src/components/UploadMenu/UploadMenu.tsx +0 -68
- package/src/components/UploadMenu/__snapshots__/UploadMenu.test.tsx.snap +0 -137
|
@@ -21,6 +21,8 @@ import ChatInputs from '../ChatInputs/ChatInputs';
|
|
|
21
21
|
import Typing from '../Typing/Typing';
|
|
22
22
|
import { boardOfExpertsLoadingSentences } from '../../helpers/constants';
|
|
23
23
|
import ArtifactHandler from '../MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler';
|
|
24
|
+
import { DocumentIcon } from '../icons/Document';
|
|
25
|
+
import { useTranslation } from 'react-i18next';
|
|
24
26
|
export interface Props {
|
|
25
27
|
memori: Memori;
|
|
26
28
|
tenant?: Tenant;
|
|
@@ -125,7 +127,8 @@ const Chat: React.FC<Props> = ({
|
|
|
125
127
|
showFunctionCache = false,
|
|
126
128
|
}) => {
|
|
127
129
|
const [isTextareaExpanded, setIsTextareaExpanded] = useState(false);
|
|
128
|
-
|
|
130
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
131
|
+
const { t } = useTranslation();
|
|
129
132
|
const scrollToBottom = () => {
|
|
130
133
|
if (isHistoryView) return;
|
|
131
134
|
setTimeout(() => {
|
|
@@ -140,13 +143,13 @@ const Chat: React.FC<Props> = ({
|
|
|
140
143
|
}, [history, preview, isHistoryView]);
|
|
141
144
|
|
|
142
145
|
// Scroll to bottom when textarea is expanded
|
|
143
|
-
useEffect(() => {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}, [isTextareaExpanded, isHistoryView]);
|
|
146
|
+
// useEffect(() => {
|
|
147
|
+
// if (isTextareaExpanded && !isHistoryView) {
|
|
148
|
+
// setTimeout(() => {
|
|
149
|
+
// scrollToBottom();
|
|
150
|
+
// }, 250);
|
|
151
|
+
// }
|
|
152
|
+
// }, [isTextareaExpanded, isHistoryView]);
|
|
150
153
|
|
|
151
154
|
const onTextareaFocus = () => {
|
|
152
155
|
stopListening();
|
|
@@ -154,16 +157,16 @@ const Chat: React.FC<Props> = ({
|
|
|
154
157
|
|
|
155
158
|
if (hasTouch) setEnableFocusChatInput(true);
|
|
156
159
|
// if the user is on mobile and had not recorded audio, add the chat-focused class to the chat wrapper
|
|
157
|
-
if (hasTouch && window.innerWidth <= 768) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
160
|
+
// if (hasTouch && window.innerWidth <= 768) {
|
|
161
|
+
// document.getElementById('chat-wrapper')?.classList?.add('chat-focused');
|
|
162
|
+
// // add the chat-focused class to the memori widget
|
|
163
|
+
// document
|
|
164
|
+
// .querySelector('.memori.memori-widget')
|
|
165
|
+
// ?.classList?.add('chat-focused');
|
|
166
|
+
// setTimeout(() => {
|
|
167
|
+
// scrollToBottom();
|
|
168
|
+
// }, 300);
|
|
169
|
+
// }
|
|
167
170
|
};
|
|
168
171
|
const onTextareaBlur = () => {
|
|
169
172
|
if (
|
|
@@ -183,16 +186,82 @@ const Chat: React.FC<Props> = ({
|
|
|
183
186
|
setIsTextareaExpanded(expanded);
|
|
184
187
|
};
|
|
185
188
|
|
|
189
|
+
// Drag and drop handlers for overlay
|
|
190
|
+
useEffect(() => {
|
|
191
|
+
let dragCounter = 0;
|
|
192
|
+
const chatWrapper = document.getElementById('chat-wrapper');
|
|
193
|
+
|
|
194
|
+
const handleDragEnter = (e: DragEvent) => {
|
|
195
|
+
// Only show overlay if dragging files (not text/links)
|
|
196
|
+
if (e.dataTransfer?.types.includes('Files')) {
|
|
197
|
+
dragCounter++;
|
|
198
|
+
if (dragCounter === 1) {
|
|
199
|
+
setIsDragging(true);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
const handleDragLeave = (e: DragEvent) => {
|
|
205
|
+
if (e.dataTransfer?.types.includes('Files')) {
|
|
206
|
+
dragCounter--;
|
|
207
|
+
if (dragCounter === 0) {
|
|
208
|
+
setIsDragging(false);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
const handleDragOver = (e: DragEvent) => {
|
|
214
|
+
// Prevent default to allow drop, but don't stop propagation
|
|
215
|
+
if (e.dataTransfer?.types.includes('Files')) {
|
|
216
|
+
e.preventDefault();
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
const handleDrop = (e: DragEvent) => {
|
|
221
|
+
// Reset dragging state, but let UploadButton handle the actual drop
|
|
222
|
+
if (e.dataTransfer?.types.includes('Files')) {
|
|
223
|
+
dragCounter = 0;
|
|
224
|
+
setIsDragging(false);
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
if (chatWrapper) {
|
|
229
|
+
chatWrapper.addEventListener('dragenter', handleDragEnter);
|
|
230
|
+
chatWrapper.addEventListener('dragleave', handleDragLeave);
|
|
231
|
+
chatWrapper.addEventListener('dragover', handleDragOver);
|
|
232
|
+
chatWrapper.addEventListener('drop', handleDrop);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
return () => {
|
|
236
|
+
if (chatWrapper) {
|
|
237
|
+
chatWrapper.removeEventListener('dragenter', handleDragEnter);
|
|
238
|
+
chatWrapper.removeEventListener('dragleave', handleDragLeave);
|
|
239
|
+
chatWrapper.removeEventListener('dragover', handleDragOver);
|
|
240
|
+
chatWrapper.removeEventListener('drop', handleDrop);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
}, []);
|
|
244
|
+
|
|
186
245
|
return (
|
|
187
246
|
<div
|
|
188
247
|
className={cx('memori-chat--wrapper', {
|
|
189
248
|
'memori-chat-wrapper--translate': translateTo,
|
|
190
249
|
'memori-chat-wrapper--expanded': isTextareaExpanded,
|
|
250
|
+
'memori-chat-wrapper--dragging': isDragging,
|
|
191
251
|
})}
|
|
192
252
|
id="chat-wrapper"
|
|
193
253
|
lang={translateTo?.toUpperCase()}
|
|
194
254
|
data-memori-lang={memori.culture?.split('-')?.[0]?.toUpperCase() ?? 'EN'}
|
|
195
255
|
>
|
|
256
|
+
{/* Drag and drop overlay */}
|
|
257
|
+
{isDragging && (
|
|
258
|
+
<div className="memori-chat--drag-overlay">
|
|
259
|
+
<DocumentIcon className="memori-chat--drag-overlay-icon" />
|
|
260
|
+
<span className="memori-chat--drag-overlay-text">
|
|
261
|
+
{t('upload.dragAndDropFiles') ?? 'Drag and drop files here to add them to the chat'}
|
|
262
|
+
</span>
|
|
263
|
+
</div>
|
|
264
|
+
)}
|
|
196
265
|
<div
|
|
197
266
|
className={cx('memori-chat--history', {
|
|
198
267
|
'memori-chat--history-touch': hasTouchscreen(),
|
|
@@ -316,8 +385,7 @@ const Chat: React.FC<Props> = ({
|
|
|
316
385
|
media={[
|
|
317
386
|
// Filter out HTML and plain text media items from the message
|
|
318
387
|
...(message?.media?.filter(
|
|
319
|
-
m =>
|
|
320
|
-
m.mimeType !== 'text/html' && m.mimeType !== 'text/plain'
|
|
388
|
+
m => !m.properties?.functionSignature
|
|
321
389
|
) || []),
|
|
322
390
|
|
|
323
391
|
// Extract document attachments that are embedded in the message text
|
|
@@ -364,7 +432,7 @@ const Chat: React.FC<Props> = ({
|
|
|
364
432
|
return attachments;
|
|
365
433
|
})(),
|
|
366
434
|
]}
|
|
367
|
-
links={message?.media?.filter(m => m.mimeType === 'text/html')}
|
|
435
|
+
// links={message?.media?.filter(m => m.mimeType === 'text/html')}
|
|
368
436
|
sessionID={sessionID}
|
|
369
437
|
baseUrl={baseUrl}
|
|
370
438
|
apiUrl={apiUrl}
|
|
@@ -431,6 +499,7 @@ const Chat: React.FC<Props> = ({
|
|
|
431
499
|
instruct={instruct}
|
|
432
500
|
authToken={authToken}
|
|
433
501
|
sendMessage={sendMessage}
|
|
502
|
+
isTyping={memoriTyping}
|
|
434
503
|
microphoneMode={microphoneMode}
|
|
435
504
|
sendOnEnter={sendOnEnter}
|
|
436
505
|
setSendOnEnter={setSendOnEnter}
|