diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-09-05 16:03:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-05 16:03:00 +0100 |
commit | 428607d9a31f7da94ccc3b44b4499a67f2ffbd1f (patch) | |
tree | 10261a8ce4fa20691f1c845b3a364d433ef0ea0b /src/view/com/util/post-embeds/VideoEmbed.web.tsx | |
parent | 60b74f7ab82328de5ec9cea7c40e1db705d40d6b (diff) | |
download | voidsky-428607d9a31f7da94ccc3b44b4499a67f2ffbd1f.tar.zst |
[Video] throw HLS errors to be caught by error boundary (#5166)
* throw HLS errors to be caught by error boundary * wording tweak * do the same on native * fix type error
Diffstat (limited to 'src/view/com/util/post-embeds/VideoEmbed.web.tsx')
-rw-r--r-- | src/view/com/util/post-embeds/VideoEmbed.web.tsx | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/view/com/util/post-embeds/VideoEmbed.web.tsx b/src/view/com/util/post-embeds/VideoEmbed.web.tsx index 0001a7af5..a25f94641 100644 --- a/src/view/com/util/post-embeds/VideoEmbed.web.tsx +++ b/src/view/com/util/post-embeds/VideoEmbed.web.tsx @@ -1,13 +1,15 @@ import React, {useCallback, useEffect, useRef, useState} from 'react' import {View} from 'react-native' import {AppBskyEmbedVideo} from '@atproto/api' -import {Trans} from '@lingui/macro' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {clamp} from '#/lib/numbers' import {useGate} from '#/lib/statsig/statsig' import { HLSUnsupportedError, VideoEmbedInnerWeb, + VideoNotFoundError, } from '#/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb' import {atoms as a} from '#/alf' import {ErrorBoundary} from '../ErrorBoundary' @@ -152,23 +154,26 @@ function ViewportObserver({ } function VideoError({error, retry}: {error: unknown; retry: () => void}) { - const isHLS = error instanceof HLSUnsupportedError + const {_} = useLingui() + + let showRetryButton = true + let text = null + + if (error instanceof VideoNotFoundError) { + text = _(msg`Video not found.`) + } else if (error instanceof HLSUnsupportedError) { + showRetryButton = false + text = _( + msg`Your browser does not support the video format. Please try a different browser.`, + ) + } else { + text = _(msg`An error occurred while loading the video. Please try again.`) + } return ( <VideoFallback.Container> - <VideoFallback.Text> - {isHLS ? ( - <Trans> - Your browser does not support the video format. Please try a - different browser. - </Trans> - ) : ( - <Trans> - An error occurred while loading the video. Please try again later. - </Trans> - )} - </VideoFallback.Text> - {!isHLS && <VideoFallback.RetryButton onPress={retry} />} + <VideoFallback.Text>{text}</VideoFallback.Text> + {showRetryButton && <VideoFallback.RetryButton onPress={retry} />} </VideoFallback.Container> ) } |