@memori.ai/memori-react 8.10.1 → 8.12.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 +66 -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.js +2 -2
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.css +81 -13
- package/dist/components/ChatBubble/ChatBubble.js +86 -19
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
- package/dist/components/ChatInputs/ChatInputs.js +8 -3
- package/dist/components/ChatInputs/ChatInputs.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/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 +40 -5
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MediaWidget/MediaWidget.css +4 -0
- 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.js +69 -25
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/UploadButton/UploadButton.js +2 -0
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/UploadButton/UploadImages/UploadImages.js +2 -2
- package/dist/components/UploadButton/UploadImages/UploadImages.js.map +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/locales/de.json +6 -1
- package/dist/locales/en.json +9 -1
- package/dist/locales/es.json +6 -1
- package/dist/locales/fr.json +5 -1
- package/dist/locales/it.json +8 -1
- package/dist/styles.css +3 -2
- 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.js +2 -2
- package/esm/components/Chat/Chat.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.css +81 -13
- package/esm/components/ChatBubble/ChatBubble.js +87 -20
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
- package/esm/components/ChatInputs/ChatInputs.js +8 -3
- package/esm/components/ChatInputs/ChatInputs.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/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 +40 -5
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MediaWidget/MediaWidget.css +4 -0
- 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.js +69 -25
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/UploadButton/UploadButton.js +2 -0
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/UploadButton/UploadImages/UploadImages.js +2 -2
- package/esm/components/UploadButton/UploadImages/UploadImages.js.map +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/locales/de.json +6 -1
- package/esm/locales/en.json +9 -1
- package/esm/locales/es.json +6 -1
- package/esm/locales/fr.json +5 -1
- package/esm/locales/it.json +8 -1
- package/esm/styles.css +3 -2
- 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.stories.tsx +16 -2
- package/src/components/Chat/Chat.tsx +2 -1
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1036 -36
- package/src/components/ChatBubble/ChatBubble.css +81 -13
- package/src/components/ChatBubble/ChatBubble.stories.tsx +16 -2
- package/src/components/ChatBubble/ChatBubble.test.tsx +17 -0
- package/src/components/ChatBubble/ChatBubble.tsx +144 -31
- package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +304 -8
- package/src/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/src/components/ChatInputs/ChatInputs.tsx +14 -1
- 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/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.stories.tsx +69 -0
- package/src/components/MediaWidget/MediaItemWidget.tsx +66 -18
- package/src/components/MediaWidget/MediaWidget.css +4 -0
- package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +10 -10
- package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +2 -2
- 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.stories.tsx +6 -3
- package/src/components/MemoriWidget/MemoriWidget.tsx +123 -48
- package/src/components/UploadButton/UploadButton.tsx +2 -0
- package/src/components/UploadButton/UploadImages/UploadImages.tsx +3 -2
- package/src/components/layouts/FullBody/FullBody.stories.tsx +110 -0
- package/src/components/layouts/Totem/Totem.stories.tsx +131 -0
- package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +131 -0
- package/src/components/layouts/layouts.stories.tsx +55 -508
- 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/index.stories.tsx +13 -320
- package/src/locales/de.json +6 -1
- package/src/locales/en.json +9 -1
- package/src/locales/es.json +6 -1
- package/src/locales/fr.json +5 -1
- package/src/locales/it.json +8 -1
- package/src/mocks/data.ts +4 -2
- package/src/styles.css +3 -2
- 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
|
@@ -8,7 +8,6 @@ import cx from 'classnames';
|
|
|
8
8
|
import memoriApiClient from '@memori.ai/memori-api-client';
|
|
9
9
|
import { getErrori18nKey } from '../../helpers/error';
|
|
10
10
|
import { mailRegEx, pwdRegEx } from '../../helpers/utils';
|
|
11
|
-
import SignupForm from '../SignupForm/SignupForm';
|
|
12
11
|
|
|
13
12
|
export interface Props {
|
|
14
13
|
open?: boolean;
|
|
@@ -21,7 +20,6 @@ export interface Props {
|
|
|
21
20
|
apiClient: ReturnType<typeof memoriApiClient>;
|
|
22
21
|
__TEST__signup?: boolean;
|
|
23
22
|
__TEST__needMissingData?: boolean;
|
|
24
|
-
__TEST__waitingForOtp?: boolean;
|
|
25
23
|
setUser: (user: User) => void;
|
|
26
24
|
}
|
|
27
25
|
|
|
@@ -36,7 +34,6 @@ const LoginDrawer = ({
|
|
|
36
34
|
apiClient,
|
|
37
35
|
__TEST__signup = false,
|
|
38
36
|
__TEST__needMissingData = false,
|
|
39
|
-
__TEST__waitingForOtp = false,
|
|
40
37
|
}: Props) => {
|
|
41
38
|
const { t, i18n } = useTranslation();
|
|
42
39
|
const lang = i18n.language === 'it' ? 'it' : 'en';
|
|
@@ -398,22 +395,6 @@ const LoginDrawer = ({
|
|
|
398
395
|
</Button>
|
|
399
396
|
</form>
|
|
400
397
|
</>
|
|
401
|
-
) : showSignup ? (
|
|
402
|
-
<SignupForm
|
|
403
|
-
tenant={tenant}
|
|
404
|
-
apiClient={apiClient}
|
|
405
|
-
onLogin={(_user: User, token: string) => {
|
|
406
|
-
// Force all signup users to go through missing data flow
|
|
407
|
-
// This ensures consistent user experience and data collection
|
|
408
|
-
setNeedsMissingData({
|
|
409
|
-
token: token,
|
|
410
|
-
birthDate: true, // Always require birth date for new users
|
|
411
|
-
tnCAndPPAccepted: true, // Always require terms acceptance for new users
|
|
412
|
-
});
|
|
413
|
-
}}
|
|
414
|
-
goToLogin={() => setShowSignup(false)}
|
|
415
|
-
__TEST__waitingForOtp={__TEST__waitingForOtp}
|
|
416
|
-
/>
|
|
417
398
|
) : showOtpCodeForm ? (
|
|
418
399
|
<>
|
|
419
400
|
<div className="memori--login-drawer--otp-container">
|
|
@@ -352,3 +352,72 @@ WithRGBColors.args = {
|
|
|
352
352
|
},
|
|
353
353
|
],
|
|
354
354
|
};
|
|
355
|
+
|
|
356
|
+
export const AllImageTypes = Template.bind({});
|
|
357
|
+
AllImageTypes.args = {
|
|
358
|
+
items: [
|
|
359
|
+
{
|
|
360
|
+
mediumID: 'img-png-1',
|
|
361
|
+
mimeType: 'image/png',
|
|
362
|
+
title: 'PNG Image',
|
|
363
|
+
url: 'https://picsum.photos/300/200?random=1',
|
|
364
|
+
content: 'https://picsum.photos/300/200?random=1',
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
mediumID: 'img-jpeg-1',
|
|
368
|
+
mimeType: 'image/jpeg',
|
|
369
|
+
title: 'JPEG Image',
|
|
370
|
+
url: 'https://picsum.photos/300/200?random=2',
|
|
371
|
+
content: 'https://picsum.photos/300/200?random=2',
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
mediumID: 'img-jpg-1',
|
|
375
|
+
mimeType: 'image/jpg',
|
|
376
|
+
title: 'JPG Image',
|
|
377
|
+
url: 'https://picsum.photos/300/200?random=3',
|
|
378
|
+
content: 'https://picsum.photos/300/200?random=3',
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
mediumID: 'img-gif-1',
|
|
382
|
+
mimeType: 'image/gif',
|
|
383
|
+
title: 'GIF Image',
|
|
384
|
+
url: 'https://picsum.photos/300/200?random=4',
|
|
385
|
+
content: 'https://picsum.photos/300/200?random=4',
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
mediumID: 'img-webp-1',
|
|
389
|
+
mimeType: 'image/webp',
|
|
390
|
+
title: 'WebP Image',
|
|
391
|
+
url: 'https://picsum.photos/300/200?random=5',
|
|
392
|
+
content: 'https://picsum.photos/300/200?random=5',
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
mediumID: 'img-svg-1',
|
|
396
|
+
mimeType: 'image/svg+xml',
|
|
397
|
+
title: 'SVG Image',
|
|
398
|
+
url: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="300" height="200"%3E%3Crect width="300" height="200" fill="%234CAF50"/%3E%3Ctext x="150" y="100" font-family="Arial" font-size="24" fill="white" text-anchor="middle"%3ESVG Image%3C/text%3E%3C/svg%3E',
|
|
399
|
+
content: 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="300" height="200"%3E%3Crect width="300" height="200" fill="%234CAF50"/%3E%3Ctext x="150" y="100" font-family="Arial" font-size="24" fill="white" text-anchor="middle"%3ESVG Image%3C/text%3E%3C/svg%3E',
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
mediumID: 'img-bmp-1',
|
|
403
|
+
mimeType: 'image/bmp',
|
|
404
|
+
title: 'BMP Image',
|
|
405
|
+
url: 'https://picsum.photos/300/200?random=6',
|
|
406
|
+
content: 'https://picsum.photos/300/200?random=6',
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
mediumID: 'img-tiff-1',
|
|
410
|
+
mimeType: 'image/tiff',
|
|
411
|
+
title: 'TIFF Image',
|
|
412
|
+
url: 'https://picsum.photos/300/200?random=7',
|
|
413
|
+
content: 'https://picsum.photos/300/200?random=7',
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
mediumID: 'img-ico-1',
|
|
417
|
+
mimeType: 'image/x-icon',
|
|
418
|
+
title: 'ICO Image',
|
|
419
|
+
url: 'https://picsum.photos/300/200?random=8',
|
|
420
|
+
content: 'https://picsum.photos/300/200?random=8',
|
|
421
|
+
},
|
|
422
|
+
],
|
|
423
|
+
};
|
|
@@ -50,6 +50,7 @@ export const RenderMediaItem = ({
|
|
|
50
50
|
}) => {
|
|
51
51
|
const [modalOpen, setModalOpen] = useState(false);
|
|
52
52
|
const [copyNotification, setCopyNotification] = useState(false);
|
|
53
|
+
const [imageError, setImageError] = useState(false);
|
|
53
54
|
|
|
54
55
|
const url = getResourceUrl({
|
|
55
56
|
resourceURI: item.url,
|
|
@@ -65,7 +66,41 @@ export const RenderMediaItem = ({
|
|
|
65
66
|
return customRenderer;
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
const isCodeSnippet = prismSyntaxLangs
|
|
69
|
+
const isCodeSnippet = prismSyntaxLangs
|
|
70
|
+
.map(l => l.mimeType)
|
|
71
|
+
.includes(item.mimeType);
|
|
72
|
+
const isImageRGB =
|
|
73
|
+
item.url?.startsWith('rgb(') || item.url?.startsWith('rgba(');
|
|
74
|
+
|
|
75
|
+
// Helper to validate if a string is a valid URL
|
|
76
|
+
const isValidUrl = (urlString: string | undefined): boolean => {
|
|
77
|
+
if (!urlString) return false;
|
|
78
|
+
try {
|
|
79
|
+
new URL(urlString);
|
|
80
|
+
return true;
|
|
81
|
+
} catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// Helper to get valid image src
|
|
87
|
+
const getImageSrc = (): string | undefined => {
|
|
88
|
+
// If url is valid, use it
|
|
89
|
+
if (isValidUrl(url) || isValidUrl(item.url)) {
|
|
90
|
+
return url || item.url;
|
|
91
|
+
} else if (item.url?.startsWith('rgb(') || item.url?.startsWith('rgba(')) {
|
|
92
|
+
return item.url;
|
|
93
|
+
} else if (item.content) {
|
|
94
|
+
return `data:${item.mimeType};base64,${item.content}`;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Return undefined if no valid source
|
|
98
|
+
return undefined;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const imageSrc = getImageSrc();
|
|
102
|
+
const fallbackImage =
|
|
103
|
+
'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI2YwZjBmMCIvPjx0ZXh0IHg9IjUwJSIgeT0iNTAlIiBmb250LWZhbWlseT0iQXJpYWwsIHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGZpbGw9IiM5OTk5OTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGR5PSIuM2VtIj5JbWFnZSBub3QgYXZhaWxhYmxlPC90ZXh0Pjwvc3ZnPg==';
|
|
69
104
|
|
|
70
105
|
const renderMediaContent = (item: Medium) => {
|
|
71
106
|
switch (item.mimeType) {
|
|
@@ -89,15 +124,16 @@ export const RenderMediaItem = ({
|
|
|
89
124
|
</picture>
|
|
90
125
|
) : (
|
|
91
126
|
<picture className="memori-media-item--figure">
|
|
92
|
-
{!preview && (
|
|
127
|
+
{!preview && imageSrc && (
|
|
93
128
|
<source
|
|
94
|
-
srcSet={
|
|
129
|
+
srcSet={imageSrc}
|
|
95
130
|
type={item.mimeType}
|
|
96
131
|
/>
|
|
97
132
|
)}
|
|
98
133
|
<img
|
|
99
134
|
alt={item.title}
|
|
100
|
-
src=
|
|
135
|
+
src={imageError || !imageSrc ? fallbackImage : imageSrc}
|
|
136
|
+
onError={() => setImageError(true)}
|
|
101
137
|
/>
|
|
102
138
|
{item.title && (
|
|
103
139
|
<figcaption className="memori-media-item--figure-caption">
|
|
@@ -187,14 +223,21 @@ export const RenderMediaItem = ({
|
|
|
187
223
|
widthMd="90%"
|
|
188
224
|
>
|
|
189
225
|
<div className="memori-media-item-preview--content">
|
|
190
|
-
<Snippet
|
|
226
|
+
<Snippet medium={item} showCopyButton={true} />
|
|
191
227
|
</div>
|
|
192
228
|
</Modal>
|
|
193
229
|
</>
|
|
194
230
|
);
|
|
195
231
|
}
|
|
196
232
|
|
|
197
|
-
if (
|
|
233
|
+
if (
|
|
234
|
+
!item.url &&
|
|
235
|
+
item?.type === 'document' &&
|
|
236
|
+
item.content &&
|
|
237
|
+
!['image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(
|
|
238
|
+
item.mimeType
|
|
239
|
+
)
|
|
240
|
+
) {
|
|
198
241
|
return (
|
|
199
242
|
<>
|
|
200
243
|
<a
|
|
@@ -254,9 +297,6 @@ export const RenderMediaItem = ({
|
|
|
254
297
|
);
|
|
255
298
|
}
|
|
256
299
|
|
|
257
|
-
const isImageRGB =
|
|
258
|
-
item.url?.startsWith('rgb(') || item.url?.startsWith('rgba(');
|
|
259
|
-
|
|
260
300
|
switch (item.mimeType) {
|
|
261
301
|
case 'image/jpeg':
|
|
262
302
|
case 'image/png':
|
|
@@ -271,7 +311,7 @@ export const RenderMediaItem = ({
|
|
|
271
311
|
) : (
|
|
272
312
|
<a
|
|
273
313
|
className="memori-media-item--link"
|
|
274
|
-
href={
|
|
314
|
+
href={imageSrc || '#'}
|
|
275
315
|
onClick={e => {
|
|
276
316
|
if (isChild) {
|
|
277
317
|
e.preventDefault();
|
|
@@ -280,6 +320,9 @@ export const RenderMediaItem = ({
|
|
|
280
320
|
e.preventDefault();
|
|
281
321
|
onClick(item.mediumID);
|
|
282
322
|
}
|
|
323
|
+
if (!imageSrc || imageError) {
|
|
324
|
+
e.preventDefault();
|
|
325
|
+
}
|
|
283
326
|
}}
|
|
284
327
|
target="_blank"
|
|
285
328
|
rel="noopener noreferrer"
|
|
@@ -529,7 +572,9 @@ const MediaItemWidget: React.FC<Props> = ({
|
|
|
529
572
|
baseURL={baseURL}
|
|
530
573
|
apiURL={apiURL}
|
|
531
574
|
onClick={mediumID => {
|
|
532
|
-
setOpenModalMedium(
|
|
575
|
+
setOpenModalMedium(
|
|
576
|
+
nonCodeDisplayMedia.find(m => m.mediumID === mediumID)
|
|
577
|
+
);
|
|
533
578
|
}}
|
|
534
579
|
item={{
|
|
535
580
|
...item,
|
|
@@ -569,7 +614,9 @@ const MediaItemWidget: React.FC<Props> = ({
|
|
|
569
614
|
baseURL={baseURL}
|
|
570
615
|
apiURL={apiURL}
|
|
571
616
|
onClick={mediumID => {
|
|
572
|
-
const foundMedium = codeSnippets.find(
|
|
617
|
+
const foundMedium = codeSnippets.find(
|
|
618
|
+
m => m.mediumID === mediumID
|
|
619
|
+
);
|
|
573
620
|
setOpenModalMedium(foundMedium);
|
|
574
621
|
}}
|
|
575
622
|
item={{
|
|
@@ -603,12 +650,13 @@ const MediaItemWidget: React.FC<Props> = ({
|
|
|
603
650
|
{prismSyntaxLangs
|
|
604
651
|
.map(l => l.mimeType)
|
|
605
652
|
.includes(openModalMedium.mimeType) ? (
|
|
606
|
-
<div
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
653
|
+
<div
|
|
654
|
+
style={{
|
|
655
|
+
minHeight: '100%',
|
|
656
|
+
background: 'none',
|
|
657
|
+
}}
|
|
658
|
+
className="memori-media-item-preview--content"
|
|
659
|
+
>
|
|
612
660
|
<Snippet preview={false} medium={openModalMedium} />
|
|
613
661
|
</div>
|
|
614
662
|
) : (
|
|
@@ -170,12 +170,12 @@ exports[`renders MediaItemWidget unchanged with img 1`] = `
|
|
|
170
170
|
class="memori-media-item--figure"
|
|
171
171
|
>
|
|
172
172
|
<source
|
|
173
|
-
srcset="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2
|
|
173
|
+
srcset="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2"
|
|
174
174
|
type="image/jpeg"
|
|
175
175
|
/>
|
|
176
176
|
<img
|
|
177
177
|
alt="Game Cover"
|
|
178
|
-
src="
|
|
178
|
+
src="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2"
|
|
179
179
|
/>
|
|
180
180
|
<figcaption
|
|
181
181
|
class="memori-media-item--figure-caption"
|
|
@@ -247,12 +247,12 @@ exports[`renders MediaItemWidget unchanged with img and sessionID 1`] = `
|
|
|
247
247
|
class="memori-media-item--figure"
|
|
248
248
|
>
|
|
249
249
|
<source
|
|
250
|
-
srcset="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2
|
|
250
|
+
srcset="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2"
|
|
251
251
|
type="image/jpeg"
|
|
252
252
|
/>
|
|
253
253
|
<img
|
|
254
254
|
alt="Game Cover"
|
|
255
|
-
src="
|
|
255
|
+
src="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2"
|
|
256
256
|
/>
|
|
257
257
|
<figcaption
|
|
258
258
|
class="memori-media-item--figure-caption"
|
|
@@ -624,12 +624,12 @@ exports[`renders MediaItemWidget with imgs in correct order (creation date) 1`]
|
|
|
624
624
|
class="memori-media-item--figure"
|
|
625
625
|
>
|
|
626
626
|
<source
|
|
627
|
-
srcset="https://memori.ai/past
|
|
627
|
+
srcset="https://memori.ai/past"
|
|
628
628
|
type="image/jpeg"
|
|
629
629
|
/>
|
|
630
630
|
<img
|
|
631
631
|
alt="Game Cover"
|
|
632
|
-
src="
|
|
632
|
+
src="https://memori.ai/past"
|
|
633
633
|
/>
|
|
634
634
|
<figcaption
|
|
635
635
|
class="memori-media-item--figure-caption"
|
|
@@ -688,12 +688,12 @@ exports[`renders MediaItemWidget with imgs in correct order (creation date) 1`]
|
|
|
688
688
|
class="memori-media-item--figure"
|
|
689
689
|
>
|
|
690
690
|
<source
|
|
691
|
-
srcset="https://memori.ai/medium
|
|
691
|
+
srcset="https://memori.ai/medium"
|
|
692
692
|
type="image/jpeg"
|
|
693
693
|
/>
|
|
694
694
|
<img
|
|
695
695
|
alt="Game Cover"
|
|
696
|
-
src="
|
|
696
|
+
src="https://memori.ai/medium"
|
|
697
697
|
/>
|
|
698
698
|
<figcaption
|
|
699
699
|
class="memori-media-item--figure-caption"
|
|
@@ -752,12 +752,12 @@ exports[`renders MediaItemWidget with imgs in correct order (creation date) 1`]
|
|
|
752
752
|
class="memori-media-item--figure"
|
|
753
753
|
>
|
|
754
754
|
<source
|
|
755
|
-
srcset="https://memori.ai/now
|
|
755
|
+
srcset="https://memori.ai/now"
|
|
756
756
|
type="image/jpeg"
|
|
757
757
|
/>
|
|
758
758
|
<img
|
|
759
759
|
alt="Game Cover"
|
|
760
|
-
src="
|
|
760
|
+
src="https://memori.ai/now"
|
|
761
761
|
/>
|
|
762
762
|
<figcaption
|
|
763
763
|
class="memori-media-item--figure-caption"
|
|
@@ -148,12 +148,12 @@ exports[`renders MediaWidget with media unchanged 1`] = `
|
|
|
148
148
|
class="memori-media-item--figure"
|
|
149
149
|
>
|
|
150
150
|
<source
|
|
151
|
-
srcset="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2
|
|
151
|
+
srcset="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2"
|
|
152
152
|
type="image/jpeg"
|
|
153
153
|
/>
|
|
154
154
|
<img
|
|
155
155
|
alt="Game Cover"
|
|
156
|
-
src="
|
|
156
|
+
src="https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2"
|
|
157
157
|
/>
|
|
158
158
|
<figcaption
|
|
159
159
|
class="memori-media-item--figure-caption"
|