diff --git a/src/components/VideoEditor.tsx b/src/components/VideoEditor.tsx index a12c1f41..ca644edb 100644 --- a/src/components/VideoEditor.tsx +++ b/src/components/VideoEditor.tsx @@ -226,11 +226,19 @@ export default function VideoEditor() { const [copied, setCopied] = useState(false); const [shareCopied, setShareCopied] = useState(false); + // State for dismissing the large file warning + const [largeFileWarningDismissed, setLargeFileWarningDismissed] = useState(false); const initialOverlayState = useRef({ overlayPosition, overlaySize, overlayOpacity, }); + + // Reset warning dismissal when a new file is selected + useEffect(() => { + setLargeFileWarningDismissed(false); + }, [file]); + useEffect(() => { if (!file) return; @@ -446,11 +454,29 @@ return () => { )} - {file && file.size > 100 * 1024 * 1024 && ( -
- ⚠️ Large file - processing may take several minutes -
+ {/* ── Large file warning banner (shown for files > 500MB, dismissible) ── */} + {file && file.size > 500 * 1024 * 1024 && !largeFileWarningDismissed && ( ++ ⚠️ Large file detected ({(file.size / (1024 * 1024)).toFixed(0)} MB). + Export may be slow or fail due to browser memory limits. + For best results, use files under 500MB. +
+ +