about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-09-04 15:56:29 +0100
committerGitHub <noreply@github.com>2024-09-04 15:56:29 +0100
commit515f87ed2487d6d875dfc6a266e47e7785e94818 (patch)
tree09b1b8f4173a1e396dc77188fe828c6bdf4942ea
parent3eef62d995522524739b609b7d182ddb6b0cedd6 (diff)
downloadvoidsky-515f87ed2487d6d875dfc6a266e47e7785e94818.tar.zst
fail video if cannot load preview (#5138)
-rw-r--r--src/view/com/composer/videos/VideoPreview.web.tsx14
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