From dfcbb8947001233cc628442a185f96ff6bf2a0de Mon Sep 17 00:00:00 2001 From: webadderall <131426131+webadderall@users.noreply.github.com> Date: Sat, 4 Apr 2026 13:08:05 +1100 Subject: [PATCH] drop unused export dialog --- src/components/video-editor/ExportDialog.tsx | 367 ------------------- 1 file changed, 367 deletions(-) delete mode 100644 src/components/video-editor/ExportDialog.tsx diff --git a/src/components/video-editor/ExportDialog.tsx b/src/components/video-editor/ExportDialog.tsx deleted file mode 100644 index 0b92ca19..00000000 --- a/src/components/video-editor/ExportDialog.tsx +++ /dev/null @@ -1,367 +0,0 @@ -import { useEffect, useState } from 'react'; -import { X, Download, Loader2 } from 'lucide-react'; -import { Button } from '@/components/ui/button'; -import type { ExportProgress } from '@/lib/exporter'; -import { toast } from 'sonner'; // Add this import -import { useScopedT } from "../../contexts/I18nContext"; -import { ExportSettingsMenu } from './ExportSettingsMenu'; -import type { ExportFormat, ExportQuality, GifFrameRate, GifSizePreset } from '@/lib/exporter'; - - -interface ExportDialogProps { - isOpen: boolean; - onClose: () => void; - progress: ExportProgress | null; - isExporting: boolean; - error: string | null; - onCancel?: () => void; - onRetrySave?: () => void; - canRetrySave?: boolean; - exportFormat?: 'mp4' | 'gif'; - exportedFilePath?: string; - exportQuality?: ExportQuality; - onExportQualityChange?: (quality: ExportQuality) => void; - onExportFormatChange?: (format: ExportFormat) => void; - gifFrameRate?: GifFrameRate; - onGifFrameRateChange?: (rate: GifFrameRate) => void; - gifLoop?: boolean; - onGifLoopChange?: (loop: boolean) => void; - gifSizePreset?: GifSizePreset; - onGifSizePresetChange?: (preset: GifSizePreset) => void; - gifOutputDimensions?: { width: number; height: number }; - onStartExport?: () => void; -} - -export function ExportDialog({ - isOpen, - onClose, - progress, - isExporting, - error, - onCancel, - onRetrySave, - canRetrySave = false, - exportFormat = 'mp4', - exportedFilePath, // Add this line - exportQuality = 'good', - onExportQualityChange, - onExportFormatChange, - gifFrameRate = 15, - onGifFrameRateChange, - gifLoop = true, - onGifLoopChange, - gifSizePreset = 'medium', - onGifSizePresetChange, - gifOutputDimensions = { width: 1280, height: 720 }, - onStartExport, -}: ExportDialogProps) { - const t = useScopedT('dialogs'); - const [showSuccess, setShowSuccess] = useState(false); - - // Reset showSuccess when a new export starts or dialog reopens - useEffect(() => { - if (isExporting) { - setShowSuccess(false); - } - }, [isExporting]); - - // Reset showSuccess when dialog opens fresh - useEffect(() => { - if (isOpen && !isExporting && !progress) { - setShowSuccess(false); - } - }, [isOpen, isExporting, progress]); - - useEffect(() => { - if (!isOpen) { - setShowSuccess(false); - } - }, [isOpen]); - - useEffect(() => { - if (!isExporting && progress && progress.percentage >= 100 && !error) { - setShowSuccess(true); - const timer = setTimeout(() => { - setShowSuccess(false); - onClose(); - }, 2000); - return () => clearTimeout(timer); - } - }, [isExporting, progress, error, onClose]); - - if (!isOpen) return null; - - const showSettings = !isExporting && !progress && !error && !showSuccess; - - const formatLabel = exportFormat === 'gif' ? 'GIF' : 'Video'; - - // Determine if we're in the compiling phase (frames done but still exporting) - const isCompiling = isExporting && progress && progress.percentage >= 100 && exportFormat === 'gif'; - const isFinalizing = progress?.phase === 'finalizing'; - const renderProgress = progress?.renderProgress; - - // Get status message based on phase - const getStatusMessage = () => { - if (error) return t('export.pleaseTryAgain'); - if (isCompiling || isFinalizing) { - if (renderProgress !== undefined && renderProgress > 0) { - return t('export.compilingGifProgress', undefined, { progress: renderProgress }); - } - return t('export.compilingGifWait'); - } - return t('export.takeMoment'); - }; - - // Get title based on phase - const getTitle = () => { - if (error) return t('export.exportFailed'); - if (isCompiling || isFinalizing) return t('export.compilingGifTitle'); - return t('export.exportingFormat', undefined, { format: formatLabel }); - }; - - const handleClickShowInFolder = async () => { - if (exportedFilePath) { - try { - const result = await window.electronAPI.revealInFolder(exportedFilePath); - if (!result.success) { - const errorMessage = result.error || result.message || 'Failed to reveal item in folder.'; - console.error('Failed to reveal in folder:', errorMessage); - toast.error(errorMessage); - } - } catch (err) { - const errorMessage = String(err); - console.error('Error calling revealInFolder IPC:', errorMessage); - toast.error(`Error revealing in folder: ${errorMessage}`); - } - } - }; - - return ( - <> -
-{error}
-- {t('export.savedSuccess', undefined, { format: formatLabel })} -
-