@memori.ai/memori-react 8.12.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 +24 -0
- package/dist/components/Chat/Chat.css +37 -3
- package/dist/components/Chat/Chat.js +60 -22
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.css +9 -5
- package/dist/components/ChatBubble/ChatBubble.js +54 -11
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatInputs/ChatInputs.css +293 -17
- package/dist/components/ChatInputs/ChatInputs.js +41 -25
- 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/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/MediaWidget/MediaItemWidget.js +2 -1
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MediaWidget/MediaWidget.css +0 -4
- package/dist/components/MemoriWidget/MemoriWidget.css +11 -2
- package/dist/components/MemoriWidget/MemoriWidget.js +41 -5
- 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 -89
- 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/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 +7 -4
- package/dist/locales/en.json +8 -5
- package/dist/locales/es.json +7 -4
- package/dist/locales/fr.json +7 -4
- package/dist/locales/it.json +8 -5
- package/dist/styles.css +1 -2
- package/esm/components/Chat/Chat.css +37 -3
- package/esm/components/Chat/Chat.js +60 -22
- package/esm/components/Chat/Chat.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.css +9 -5
- package/esm/components/ChatBubble/ChatBubble.js +54 -11
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatInputs/ChatInputs.css +293 -17
- package/esm/components/ChatInputs/ChatInputs.js +42 -26
- 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/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/MediaWidget/MediaItemWidget.js +2 -1
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MediaWidget/MediaWidget.css +0 -4
- package/esm/components/MemoriWidget/MemoriWidget.css +11 -2
- package/esm/components/MemoriWidget/MemoriWidget.js +41 -5
- 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 -90
- 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/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 +7 -4
- package/esm/locales/en.json +8 -5
- package/esm/locales/es.json +7 -4
- package/esm/locales/fr.json +7 -4
- package/esm/locales/it.json +8 -5
- package/esm/styles.css +1 -2
- package/package.json +1 -1
- package/src/components/Chat/Chat.css +37 -3
- package/src/components/Chat/Chat.tsx +89 -21
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +672 -732
- package/src/components/ChatBubble/ChatBubble.css +9 -5
- package/src/components/ChatBubble/ChatBubble.tsx +111 -20
- package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +4 -4
- package/src/components/ChatInputs/ChatInputs.css +293 -17
- package/src/components/ChatInputs/ChatInputs.tsx +144 -87
- 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/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/MediaWidget/MediaItemWidget.tsx +2 -1
- package/src/components/MediaWidget/MediaWidget.css +0 -4
- package/src/components/MemoriWidget/MemoriWidget.css +11 -2
- package/src/components/MemoriWidget/MemoriWidget.tsx +61 -12
- 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 -175
- package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +19 -4
- package/src/components/UploadButton/UploadImages/UploadImages.tsx +195 -35
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -1
- package/src/components/layouts/chat.css +1 -1
- package/src/helpers/constants.ts +1 -1
- package/src/helpers/imageCompression.ts +230 -0
- package/src/locales/de.json +7 -4
- package/src/locales/en.json +8 -5
- package/src/locales/es.json +7 -4
- package/src/locales/fr.json +7 -4
- package/src/locales/it.json +8 -5
- package/src/styles.css +1 -2
- 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
package/src/locales/es.json
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"yesterday": "Ayer",
|
|
25
25
|
"last_7_days": "Últimos 7 días",
|
|
26
26
|
"last_30_days": "Últimos 30 días",
|
|
27
|
+
"placeholder": "Haz una pregunta",
|
|
27
28
|
"date": "Fecha de nacimiento",
|
|
28
29
|
"month": "Mes",
|
|
29
30
|
"copied": "¡Copiado!",
|
|
@@ -237,9 +238,10 @@
|
|
|
237
238
|
"upload": {
|
|
238
239
|
"loginRequired": "Connexion requise",
|
|
239
240
|
"loginRequiredDescription": "Veuillez vous connecter pour télécharger des images",
|
|
240
|
-
"uploadFiles": "Télécharger des fichiers",
|
|
241
|
-
"
|
|
242
|
-
"
|
|
241
|
+
"uploadFiles": "Télécharger des fichiers ({{shortcut}}+O para abrir el selector de archivos)",
|
|
242
|
+
"uploadFilesWithShortcut": "{{shortcut}}+O para abrir el selector de archivos",
|
|
243
|
+
"uploadImages": "Télécharger des images",
|
|
244
|
+
"uploadDocuments": "Télécharger des documents",
|
|
243
245
|
"apiClientNotConfigured": "API client non configuré correctement pour le téléchargement de médias",
|
|
244
246
|
"fileReadingFailed": "Échec de la lecture du fichier",
|
|
245
247
|
"uploadFailed": "Échec du téléchargement",
|
|
@@ -248,7 +250,8 @@
|
|
|
248
250
|
"replace": "Remplacer",
|
|
249
251
|
"maxImagesReached": "Vous pouvez télécharger jusqu'à {{max}} images",
|
|
250
252
|
"remaining": "restant",
|
|
251
|
-
"maxReached": "Limite atteinte"
|
|
253
|
+
"maxReached": "Limite atteinte",
|
|
254
|
+
"dragAndDropFiles": "Arrastre y suelte los archivos aquí para agregarlos a la chat"
|
|
252
255
|
},
|
|
253
256
|
"media": {
|
|
254
257
|
"title": "Título",
|
package/src/locales/fr.json
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"day": "Jour",
|
|
22
22
|
"month": "Mois",
|
|
23
23
|
"year": "Année",
|
|
24
|
+
"placeholder": "Faites une question",
|
|
24
25
|
"createdAt": "Date de création",
|
|
25
26
|
"all": "Tous",
|
|
26
27
|
"today": "Aujourd'hui",
|
|
@@ -245,9 +246,10 @@
|
|
|
245
246
|
"upload": {
|
|
246
247
|
"loginRequired": "Connexion requise",
|
|
247
248
|
"loginRequiredDescription": "Veuillez vous connecter pour télécharger des images",
|
|
248
|
-
"uploadFiles": "Télécharger des fichiers",
|
|
249
|
-
"
|
|
250
|
-
"
|
|
249
|
+
"uploadFiles": "Télécharger des fichiers ({{shortcut}}+O pour ouvrir le sélecteur de fichiers)",
|
|
250
|
+
"uploadFilesWithShortcut": "{{shortcut}}+O pour ouvrir le sélecteur de fichiers",
|
|
251
|
+
"uploadImages": "Télécharger des images",
|
|
252
|
+
"uploadDocuments": "Télécharger des documents",
|
|
251
253
|
"replace": "Remplacer",
|
|
252
254
|
"remaining": "restant",
|
|
253
255
|
"maxReached": "Limite atteinte",
|
|
@@ -256,7 +258,8 @@
|
|
|
256
258
|
"fileReadingFailed": "Échec de la lecture du fichier",
|
|
257
259
|
"uploadFailed": "Échec du téléchargement",
|
|
258
260
|
"uploadSuccess": "Téléchargement réussi",
|
|
259
|
-
"uploadSuccessDescription": "Le fichier a été téléchargé avec succès"
|
|
261
|
+
"uploadSuccessDescription": "Le fichier a été téléchargé avec succès",
|
|
262
|
+
"dragAndDropFiles": "Glissez et déposez les fichiers ici pour les ajouter à la chat"
|
|
260
263
|
},
|
|
261
264
|
"media": {
|
|
262
265
|
"title": "Titre",
|
package/src/locales/it.json
CHANGED
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"last_7_days": "Ultimi 7 giorni",
|
|
38
38
|
"last_30_days": "Ultimi 30 giorni",
|
|
39
39
|
"previous": "Precedente",
|
|
40
|
+
"placeholder": "Fai una domanda",
|
|
40
41
|
"copy": "Copia",
|
|
41
42
|
"copyRawCode": "Copia codice sorgente",
|
|
42
43
|
"copyToClipboard": "Copia negli appunti",
|
|
@@ -274,10 +275,11 @@
|
|
|
274
275
|
"upload": {
|
|
275
276
|
"loginRequired": "Login richiesto",
|
|
276
277
|
"loginRequiredDescription": "Per caricare immagini, devi prima accedere",
|
|
277
|
-
"uploadFiles": "Carica file",
|
|
278
|
-
"
|
|
278
|
+
"uploadFiles": "Carica file ({{shortcut}}+O per aprire il selettore file)",
|
|
279
|
+
"uploadFilesWithShortcut": "{{shortcut}}+O per aprire il selettore file",
|
|
280
|
+
"uploadImages": "Carica immagini",
|
|
279
281
|
"lastDocumentSlot": "Carica ultimo documento",
|
|
280
|
-
"
|
|
282
|
+
"uploadDocuments": "Carica documenti",
|
|
281
283
|
"maxDocumentsReached": "Puoi caricare fino a {{max}} documenti",
|
|
282
284
|
"replace": "Sostituisci documento",
|
|
283
285
|
"maxImagesReached": "Puoi caricare fino a {{max}} immagini",
|
|
@@ -287,13 +289,14 @@
|
|
|
287
289
|
"uploadSuccess": "Caricamento riuscito",
|
|
288
290
|
"remaining": "rimanenti",
|
|
289
291
|
"maxReached": "Limite raggiunto",
|
|
290
|
-
"titleImage": "
|
|
292
|
+
"titleImage": "Titolo immagine: {{title}}",
|
|
291
293
|
"titleImageUpload": "Carica immagini",
|
|
292
294
|
"titleHelp": "Aggiungi un titolo descrittivo per aiutare l'AI a fornire risposte più appropriate.",
|
|
293
295
|
"titlePlaceholder": "Inserisci il titolo dell'immagine",
|
|
294
296
|
"uploadSuccessDescription": "Il file è stato caricato con successo",
|
|
295
297
|
"partialUpload": "Solo {{uploaded}} immagini su {{total}} immagini saranno caricate. Massimo {{max}} immagini consentite.",
|
|
296
|
-
"cancel": "Annulla"
|
|
298
|
+
"cancel": "Annulla",
|
|
299
|
+
"dragAndDropFiles": "Trascina qui i file per aggiungerli alla chat"
|
|
297
300
|
},
|
|
298
301
|
"gamification": {
|
|
299
302
|
"level": "Livello",
|
package/src/styles.css
CHANGED
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
@import url('./components/ShareButton/ShareButton.css');
|
|
44
44
|
@import url('./components/Snippet/Snippet.css');
|
|
45
45
|
@import url('./components/StartPanel/StartPanel.css');
|
|
46
|
-
@import url('./components/UploadMenu/UploadMenu.css');
|
|
47
46
|
@import url('./components/DateSelector/DateSelector.css');
|
|
48
47
|
@import url('./components/AgeVerificationModal/AgeVerificationModal.css');
|
|
49
48
|
@import url('./components/KnownFacts/KnownFacts.css');
|
|
@@ -97,7 +96,7 @@ body.sb-show-main #root,
|
|
|
97
96
|
--memori-chat-bubble-bg: #fff;
|
|
98
97
|
--memori-chat-user-bubble-bg: var(--memori-primary);
|
|
99
98
|
--memori-text-color: #000;
|
|
100
|
-
--memori-border-radius:
|
|
99
|
+
--memori-border-radius: 8px;
|
|
101
100
|
--memori-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.02);
|
|
102
101
|
--memori-button-bg: #fff;
|
|
103
102
|
--memori-button-text: #000;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
.memori-upload-menu {
|
|
2
|
-
position: relative;
|
|
3
|
-
display: inline-block;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.memori--conversation-button {
|
|
7
|
-
cursor: pointer;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.memori-menu--overlay {
|
|
11
|
-
position: absolute;
|
|
12
|
-
top: 100%;
|
|
13
|
-
right: 0;
|
|
14
|
-
left: auto;
|
|
15
|
-
display: flex;
|
|
16
|
-
min-width: 12rem;
|
|
17
|
-
flex-direction: column;
|
|
18
|
-
padding: 0.5rem 0;
|
|
19
|
-
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
20
|
-
border-radius: 0.375rem;
|
|
21
|
-
margin: 0;
|
|
22
|
-
margin-top: 0.5rem;
|
|
23
|
-
background-color: #fff;
|
|
24
|
-
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.12);
|
|
25
|
-
list-style: none;
|
|
26
|
-
outline: none;
|
|
27
|
-
transform-origin: top right;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.memori-menu--li {
|
|
31
|
-
display: flex;
|
|
32
|
-
align-items: center;
|
|
33
|
-
justify-content: center;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
a.memori-menu--button,
|
|
37
|
-
button.memori-menu--button {
|
|
38
|
-
width: 100%;
|
|
39
|
-
justify-content: flex-start;
|
|
40
|
-
color: #000;
|
|
41
|
-
text-align: left;
|
|
42
|
-
text-decoration: none;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.memori-menu--icon {
|
|
46
|
-
width: 1em;
|
|
47
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import { Meta, Story } from '@storybook/react';
|
|
3
|
-
import I18nWrapper from '../../I18nWrapper';
|
|
4
|
-
import UploadMenu, { Props } from './UploadMenu';
|
|
5
|
-
|
|
6
|
-
import './UploadMenu.css';
|
|
7
|
-
|
|
8
|
-
const meta: Meta = {
|
|
9
|
-
title: 'Widget/Upload Menu',
|
|
10
|
-
component: UploadMenu,
|
|
11
|
-
argTypes: {
|
|
12
|
-
attachmentsMenuOpen: {
|
|
13
|
-
control: {
|
|
14
|
-
type: 'select',
|
|
15
|
-
options: ['link', 'media'],
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
parameters: {
|
|
20
|
-
controls: { expanded: true },
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default meta;
|
|
25
|
-
|
|
26
|
-
const Template: Story<Props> = args => {
|
|
27
|
-
const [attachmentsMenuOpen, setAttachmentsMenuOpen] = useState<
|
|
28
|
-
'link' | 'media' | undefined
|
|
29
|
-
>(args.attachmentsMenuOpen);
|
|
30
|
-
return (
|
|
31
|
-
<I18nWrapper>
|
|
32
|
-
<div
|
|
33
|
-
style={{
|
|
34
|
-
minHeight: '200px',
|
|
35
|
-
display: 'flex',
|
|
36
|
-
alignItems: 'flex-end',
|
|
37
|
-
}}
|
|
38
|
-
>
|
|
39
|
-
<UploadMenu
|
|
40
|
-
{...args}
|
|
41
|
-
attachmentsMenuOpen={attachmentsMenuOpen}
|
|
42
|
-
setAttachmentsMenuOpen={setAttachmentsMenuOpen}
|
|
43
|
-
/>
|
|
44
|
-
</div>
|
|
45
|
-
</I18nWrapper>
|
|
46
|
-
);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// By passing using the Args format for exported stories, you can control the props for a component for reuse in a test
|
|
50
|
-
// https://storybook.js.org/docs/react/workflows/unit-testing
|
|
51
|
-
export const Default = Template.bind({});
|
|
52
|
-
Default.args = {
|
|
53
|
-
attachmentsMenuOpen: undefined,
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export const Disabled = Template.bind({});
|
|
57
|
-
Disabled.args = {
|
|
58
|
-
attachmentsMenuOpen: undefined,
|
|
59
|
-
disabled: true,
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export const Authenticated = Template.bind({});
|
|
63
|
-
Authenticated.args = {
|
|
64
|
-
attachmentsMenuOpen: undefined,
|
|
65
|
-
authToken: 'test',
|
|
66
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render } from '@testing-library/react';
|
|
3
|
-
import UploadMenu from './UploadMenu';
|
|
4
|
-
|
|
5
|
-
it('renders UploadMenu unchanged', () => {
|
|
6
|
-
const { container } = render(
|
|
7
|
-
<UploadMenu setAttachmentsMenuOpen={jest.fn()} />
|
|
8
|
-
);
|
|
9
|
-
expect(container).toMatchSnapshot();
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it('renders UploadMenu disabled unchanged', () => {
|
|
13
|
-
const { container } = render(
|
|
14
|
-
<UploadMenu setAttachmentsMenuOpen={jest.fn()} disabled />
|
|
15
|
-
);
|
|
16
|
-
expect(container).toMatchSnapshot();
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it('renders UploadMenu on link selected unchanged', () => {
|
|
20
|
-
const { container } = render(
|
|
21
|
-
<UploadMenu attachmentsMenuOpen="link" setAttachmentsMenuOpen={jest.fn()} />
|
|
22
|
-
);
|
|
23
|
-
expect(container).toMatchSnapshot();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('renders UploadMenu on media selected unchanged', () => {
|
|
27
|
-
const { container } = render(
|
|
28
|
-
<UploadMenu
|
|
29
|
-
attachmentsMenuOpen="media"
|
|
30
|
-
setAttachmentsMenuOpen={jest.fn()}
|
|
31
|
-
/>
|
|
32
|
-
);
|
|
33
|
-
expect(container).toMatchSnapshot();
|
|
34
|
-
});
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Menu } from '@headlessui/react';
|
|
3
|
-
import cx from 'classnames';
|
|
4
|
-
import Button from '../ui/Button';
|
|
5
|
-
import Link from '../icons/Link';
|
|
6
|
-
import Picture from '../icons/Picture';
|
|
7
|
-
import PaperClip from '../icons/PaperClip';
|
|
8
|
-
|
|
9
|
-
export interface Props {
|
|
10
|
-
attachmentsMenuOpen?: 'link' | 'media';
|
|
11
|
-
setAttachmentsMenuOpen: (value: 'link' | 'media') => void;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
authToken?: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const UploadMenu: React.FC<Props> = ({
|
|
17
|
-
attachmentsMenuOpen,
|
|
18
|
-
setAttachmentsMenuOpen,
|
|
19
|
-
disabled = false,
|
|
20
|
-
authToken,
|
|
21
|
-
}) => {
|
|
22
|
-
return (
|
|
23
|
-
<Menu as="div" className="memori-upload-menu">
|
|
24
|
-
<Menu.Button
|
|
25
|
-
disabled={disabled}
|
|
26
|
-
className={cx(
|
|
27
|
-
'memori-button',
|
|
28
|
-
'memori-button--circle',
|
|
29
|
-
'memori-button--icon-only',
|
|
30
|
-
'memori-share-button--button',
|
|
31
|
-
'memori--conversation-button'
|
|
32
|
-
)}
|
|
33
|
-
>
|
|
34
|
-
<div className="memori-button--icon">
|
|
35
|
-
<PaperClip />
|
|
36
|
-
</div>
|
|
37
|
-
</Menu.Button>
|
|
38
|
-
<Menu.Items as="ul" className="memori-menu--overlay">
|
|
39
|
-
<Menu.Item as="li" className="memori-menu--li">
|
|
40
|
-
<Button
|
|
41
|
-
className="memori-menu--button"
|
|
42
|
-
ghost
|
|
43
|
-
icon={<Link />}
|
|
44
|
-
outlined={attachmentsMenuOpen === 'link'}
|
|
45
|
-
onClick={() => setAttachmentsMenuOpen('link')}
|
|
46
|
-
>
|
|
47
|
-
Link
|
|
48
|
-
</Button>
|
|
49
|
-
</Menu.Item>
|
|
50
|
-
{!!authToken?.length && (
|
|
51
|
-
<Menu.Item>
|
|
52
|
-
<Button
|
|
53
|
-
className="memori-menu--button"
|
|
54
|
-
ghost
|
|
55
|
-
icon={<Picture />}
|
|
56
|
-
outlined={attachmentsMenuOpen === 'media'}
|
|
57
|
-
onClick={() => setAttachmentsMenuOpen('media')}
|
|
58
|
-
>
|
|
59
|
-
Media
|
|
60
|
-
</Button>
|
|
61
|
-
</Menu.Item>
|
|
62
|
-
)}
|
|
63
|
-
</Menu.Items>
|
|
64
|
-
</Menu>
|
|
65
|
-
);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
export default UploadMenu;
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`renders UploadMenu disabled unchanged 1`] = `
|
|
4
|
-
<div>
|
|
5
|
-
<div
|
|
6
|
-
class="memori-upload-menu"
|
|
7
|
-
data-headlessui-state=""
|
|
8
|
-
>
|
|
9
|
-
<button
|
|
10
|
-
aria-haspopup="true"
|
|
11
|
-
class="memori-button memori-button--circle memori-button--icon-only memori-share-button--button memori--conversation-button"
|
|
12
|
-
data-headlessui-state=""
|
|
13
|
-
disabled=""
|
|
14
|
-
id="headlessui-menu-button-:r2:"
|
|
15
|
-
type="button"
|
|
16
|
-
>
|
|
17
|
-
<div
|
|
18
|
-
class="memori-button--icon"
|
|
19
|
-
>
|
|
20
|
-
<svg
|
|
21
|
-
aria-hidden="true"
|
|
22
|
-
focusable="false"
|
|
23
|
-
role="img"
|
|
24
|
-
viewBox="0 0 1024 1024"
|
|
25
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
26
|
-
>
|
|
27
|
-
<path
|
|
28
|
-
d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"
|
|
29
|
-
/>
|
|
30
|
-
</svg>
|
|
31
|
-
</div>
|
|
32
|
-
</button>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
`;
|
|
36
|
-
|
|
37
|
-
exports[`renders UploadMenu on link selected unchanged 1`] = `
|
|
38
|
-
<div>
|
|
39
|
-
<div
|
|
40
|
-
class="memori-upload-menu"
|
|
41
|
-
data-headlessui-state=""
|
|
42
|
-
>
|
|
43
|
-
<button
|
|
44
|
-
aria-expanded="false"
|
|
45
|
-
aria-haspopup="true"
|
|
46
|
-
class="memori-button memori-button--circle memori-button--icon-only memori-share-button--button memori--conversation-button"
|
|
47
|
-
data-headlessui-state=""
|
|
48
|
-
id="headlessui-menu-button-:r4:"
|
|
49
|
-
type="button"
|
|
50
|
-
>
|
|
51
|
-
<div
|
|
52
|
-
class="memori-button--icon"
|
|
53
|
-
>
|
|
54
|
-
<svg
|
|
55
|
-
aria-hidden="true"
|
|
56
|
-
focusable="false"
|
|
57
|
-
role="img"
|
|
58
|
-
viewBox="0 0 1024 1024"
|
|
59
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
-
>
|
|
61
|
-
<path
|
|
62
|
-
d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"
|
|
63
|
-
/>
|
|
64
|
-
</svg>
|
|
65
|
-
</div>
|
|
66
|
-
</button>
|
|
67
|
-
</div>
|
|
68
|
-
</div>
|
|
69
|
-
`;
|
|
70
|
-
|
|
71
|
-
exports[`renders UploadMenu on media selected unchanged 1`] = `
|
|
72
|
-
<div>
|
|
73
|
-
<div
|
|
74
|
-
class="memori-upload-menu"
|
|
75
|
-
data-headlessui-state=""
|
|
76
|
-
>
|
|
77
|
-
<button
|
|
78
|
-
aria-expanded="false"
|
|
79
|
-
aria-haspopup="true"
|
|
80
|
-
class="memori-button memori-button--circle memori-button--icon-only memori-share-button--button memori--conversation-button"
|
|
81
|
-
data-headlessui-state=""
|
|
82
|
-
id="headlessui-menu-button-:r6:"
|
|
83
|
-
type="button"
|
|
84
|
-
>
|
|
85
|
-
<div
|
|
86
|
-
class="memori-button--icon"
|
|
87
|
-
>
|
|
88
|
-
<svg
|
|
89
|
-
aria-hidden="true"
|
|
90
|
-
focusable="false"
|
|
91
|
-
role="img"
|
|
92
|
-
viewBox="0 0 1024 1024"
|
|
93
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
94
|
-
>
|
|
95
|
-
<path
|
|
96
|
-
d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"
|
|
97
|
-
/>
|
|
98
|
-
</svg>
|
|
99
|
-
</div>
|
|
100
|
-
</button>
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
`;
|
|
104
|
-
|
|
105
|
-
exports[`renders UploadMenu unchanged 1`] = `
|
|
106
|
-
<div>
|
|
107
|
-
<div
|
|
108
|
-
class="memori-upload-menu"
|
|
109
|
-
data-headlessui-state=""
|
|
110
|
-
>
|
|
111
|
-
<button
|
|
112
|
-
aria-expanded="false"
|
|
113
|
-
aria-haspopup="true"
|
|
114
|
-
class="memori-button memori-button--circle memori-button--icon-only memori-share-button--button memori--conversation-button"
|
|
115
|
-
data-headlessui-state=""
|
|
116
|
-
id="headlessui-menu-button-:r0:"
|
|
117
|
-
type="button"
|
|
118
|
-
>
|
|
119
|
-
<div
|
|
120
|
-
class="memori-button--icon"
|
|
121
|
-
>
|
|
122
|
-
<svg
|
|
123
|
-
aria-hidden="true"
|
|
124
|
-
focusable="false"
|
|
125
|
-
role="img"
|
|
126
|
-
viewBox="0 0 1024 1024"
|
|
127
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
128
|
-
>
|
|
129
|
-
<path
|
|
130
|
-
d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"
|
|
131
|
-
/>
|
|
132
|
-
</svg>
|
|
133
|
-
</div>
|
|
134
|
-
</button>
|
|
135
|
-
</div>
|
|
136
|
-
</div>
|
|
137
|
-
`;
|