diff --git a/src/components/Content/index.tsx b/src/components/Content/index.tsx
index d80c2b5..f7aab9f 100644
--- a/src/components/Content/index.tsx
+++ b/src/components/Content/index.tsx
@@ -31,7 +31,17 @@ import WebPreview from '../WebPreview'
import YoutubeEmbeddedPlayer from '../YoutubeEmbeddedPlayer'
const Content = memo(
- ({ event, content, className }: { event?: Event; content?: string; className?: string }) => {
+ ({
+ event,
+ content,
+ className,
+ mustLoadMedia
+ }: {
+ event?: Event
+ content?: string
+ className?: string
+ mustLoadMedia?: boolean
+ }) => {
const translatedEvent = useTranslatedEvent(event?.id)
const _content = translatedEvent?.content ?? event?.content ?? content
if (!_content) return null
@@ -95,11 +105,14 @@ const Content = memo(
images={allImages}
start={start}
end={end}
+ mustLoad={mustLoadMedia}
/>
)
}
if (node.type === 'media') {
- return
+ return (
+
+ )
}
if (node.type === 'url') {
return
@@ -127,7 +140,14 @@ const Content = memo(
return
}
if (node.type === 'youtube') {
- return
+ return (
+
+ )
}
return null
})}
diff --git a/src/components/ImageGallery/index.tsx b/src/components/ImageGallery/index.tsx
index 3b85d35..93b41ee 100644
--- a/src/components/ImageGallery/index.tsx
+++ b/src/components/ImageGallery/index.tsx
@@ -14,12 +14,14 @@ export default function ImageGallery({
className,
images,
start = 0,
- end = images.length
+ end = images.length,
+ mustLoad = false
}: {
className?: string
images: TImetaInfo[]
start?: number
end?: number
+ mustLoad?: boolean
}) {
const id = useMemo(() => `image-gallery-${randomString()}`, [])
const { autoLoadMedia } = useContentPolicy()
@@ -42,7 +44,7 @@ export default function ImageGallery({
const displayImages = images.slice(start, end)
- if (!autoLoadMedia) {
+ if (!mustLoad && !autoLoadMedia) {
return displayImages.map((image, i) => (
{
- if (!display) {
+ if (!mustLoad && !display) {
setMediaType(null)
return
}
@@ -52,9 +60,9 @@ export default function MediaPlayer({ src, className }: { src: string; className
return () => {
video.src = ''
}
- }, [src, display])
+ }, [src, display, mustLoad])
- if (!display) {
+ if (!mustLoad && !display) {
return (
)
diff --git a/src/components/YoutubeEmbeddedPlayer/index.tsx b/src/components/YoutubeEmbeddedPlayer/index.tsx
index 196016d..5dd804e 100644
--- a/src/components/YoutubeEmbeddedPlayer/index.tsx
+++ b/src/components/YoutubeEmbeddedPlayer/index.tsx
@@ -7,10 +7,12 @@ import { useTranslation } from 'react-i18next'
export default function YoutubeEmbeddedPlayer({
url,
- className
+ className,
+ mustLoad = false
}: {
url: string
className?: string
+ mustLoad?: boolean
}) {
const { t } = useTranslation()
const { autoLoadMedia } = useContentPolicy()
@@ -29,7 +31,7 @@ export default function YoutubeEmbeddedPlayer({
}, [autoLoadMedia])
useEffect(() => {
- if (!videoId || !containerRef.current || !display) return
+ if (!videoId || !containerRef.current || (!mustLoad && !display)) return
if (!window.YT) {
const script = document.createElement('script')
@@ -75,9 +77,9 @@ export default function YoutubeEmbeddedPlayer({
playerRef.current.destroy()
}
}
- }, [videoId, display])
+ }, [videoId, display, mustLoad])
- if (!display) {
+ if (!mustLoad && !display) {
return (