diff --git a/src/components/ProgressSteps.tsx b/src/components/ProgressSteps.tsx new file mode 100644 index 00000000..069cfb1c --- /dev/null +++ b/src/components/ProgressSteps.tsx @@ -0,0 +1,88 @@ +"use client"; + +import { Upload, SlidersHorizontal, Zap, Download, Check } from "lucide-react"; +import type { ExportStatus } from "@/lib/types"; +import { cn } from "@/lib/utils"; + +interface ProgressStepsProps { + file: File | null; + status: ExportStatus; +} + +const STEPS = [ + { label: "Upload", icon: Upload }, + { label: "Configure", icon: SlidersHorizontal }, + { label: "Export", icon: Zap }, + { label: "Download", icon: Download }, +] as const; + +type StepState = "completed" | "active" | "upcoming"; + +export default function ProgressSteps({ file, status }: ProgressStepsProps) { + const currentStep = !file + ? 0 + : status === "loading-engine" || status === "exporting" + ? 2 + : status === "done" + ? 3 + : 1; + + return ( + + ); +} diff --git a/src/components/VideoEditor.tsx b/src/components/VideoEditor.tsx index a12c1f41..5ca5dca1 100644 --- a/src/components/VideoEditor.tsx +++ b/src/components/VideoEditor.tsx @@ -25,6 +25,7 @@ import { SlidersHorizontal, Zap, AlertTriangle, Github, Copy } from "lucide-react"; import OnboardingTour from "./OnboardingTour"; +import ProgressSteps from "./ProgressSteps"; import { useKeyboardShortcuts } from "@/hooks/useKeyboardShortcuts"; import { loadOverlayState, persistOverlayState } from "@/lib/editorPersistence"; @@ -407,6 +408,11 @@ return () => { No login. No ads. 100% private - your video never leaves your device. + +
+ +
+