diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-09-04 15:56:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-04 15:56:29 +0100 |
commit | 515f87ed2487d6d875dfc6a266e47e7785e94818 (patch) | |
tree | 09b1b8f4173a1e396dc77188fe828c6bdf4942ea | |
parent | 3eef62d995522524739b609b7d182ddb6b0cedd6 (diff) | |
download | voidsky-515f87ed2487d6d875dfc6a266e47e7785e94818.tar.zst |
fail video if cannot load preview (#5138)
-rw-r--r-- | src/view/com/composer/videos/VideoPreview.web.tsx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/view/com/composer/videos/VideoPreview.web.tsx b/src/view/com/composer/videos/VideoPreview.web.tsx index e802adddf..4c44781cf 100644 --- a/src/view/com/composer/videos/VideoPreview.web.tsx +++ b/src/view/com/composer/videos/VideoPreview.web.tsx @@ -1,9 +1,12 @@ import React, {useEffect, useRef} from 'react' import {View} from 'react-native' import {ImagePickerAsset} from 'expo-image-picker' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {CompressedVideo} from '#/lib/media/video/types' import {clamp} from '#/lib/numbers' +import * as Toast from '#/view/com/util/Toast' import {ExternalEmbedRemoveBtn} from 'view/com/composer/ExternalEmbedRemoveBtn' import {atoms as a} from '#/alf' @@ -19,6 +22,7 @@ export function VideoPreview({ clear: () => void }) { const ref = useRef<HTMLVideoElement>(null) + const {_} = useLingui() useEffect(() => { if (!ref.current) return @@ -32,11 +36,19 @@ export function VideoPreview({ }, {signal}, ) + ref.current.addEventListener( + 'error', + () => { + Toast.show(_(msg`Could not process your video`)) + clear() + }, + {signal}, + ) return () => { abortController.abort() } - }, [setDimensions]) + }, [setDimensions, _, clear]) let aspectRatio = asset.width / asset.height |