Fail video duration check before compression

Non-picker entries into the composer (share extension, web paste, draft
restore) skipped the duration check that SelectMediaButton runs, so a
too-long video would compress first and only get rejected afterward.

- Probe duration in selectVideo when missing (share-extension deeplinks
  ship only uri|width|height)
- Reject before processVideo when duration exceeds VIDEO_MAX_DURATION_MS,
  surfacing the error in the composer inline error state
- Apply the same gate to restoreVideo
- Normalize native getVideoMetadata duration to milliseconds to match
  expo-image-picker's convention (was seconds, harmless until now)
This commit is contained in:
vineyardbovines
2026-06-26 15:21:22 -04:00
parent 66250e45cc
commit 12bf7ba3c1
3 changed files with 79 additions and 14 deletions
-3
View File
@@ -1972,9 +1972,6 @@
"@typescript-eslint/no-explicit-any": {
"count": 2
},
"@typescript-eslint/no-floating-promises": {
"count": 1
},
"@typescript-eslint/no-misused-promises": {
"count": 4
},