From 4ed92e7c842a850222177c88518e5c66529be0e2 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 5 Feb 2025 00:43:53 +0800 Subject: [PATCH] Experimental untested solution to unknown files --- src/components/media.jsx | 21 ++++++++++++++++++--- src/locales/en.po | 4 ++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/components/media.jsx b/src/components/media.jsx index d4fae620d..b0eb35d6d 100644 --- a/src/components/media.jsx +++ b/src/components/media.jsx @@ -1,4 +1,4 @@ -import { useLingui } from '@lingui/react/macro'; +import { Trans, useLingui } from '@lingui/react/macro'; import { getBlurHashAverageColor } from 'fast-blurhash'; import { Fragment } from 'preact'; import { memo } from 'preact/compat'; @@ -165,9 +165,12 @@ function Media({ onUpdate, }; + const [mediaLoadError, setMediaLoadError] = useState(false); + const Parent = useMemo( - () => (to ? (props) => : 'div'), - [to], + () => + to && !mediaLoadError ? (props) => : 'div', + [to, mediaLoadError], ); const remoteMediaURLObj = remoteMediaURL ? getURLObj(remoteMediaURL) : null; @@ -392,6 +395,8 @@ function Media({ const { src } = e.target; if (src === mediaURL && mediaURL !== remoteMediaURL) { e.target.src = remoteMediaURL; + } else { + setMediaLoadError(true); } }} /> @@ -401,6 +406,16 @@ function Media({ )} + {mediaLoadError && ( +
+ + {' '} + + Open file + + +
+ )} ); } else if (type === 'gifv' || type === 'video' || isVideoMaybe) { diff --git a/src/locales/en.po b/src/locales/en.po index 026af9fdf..6018fd7d3 100644 --- a/src/locales/en.po +++ b/src/locales/en.po @@ -1284,6 +1284,10 @@ msgstr "" msgid "Filtered" msgstr "" +#: src/components/media.jsx:414 +msgid "Open file" +msgstr "Open file" + #: src/components/modals.jsx:73 msgid "Post published. Check it out." msgstr ""