[dyad] Add clear button to remove video - wrote 1 file(s)

This commit is contained in:
[dyad]
2026-01-30 08:28:59 +01:00
parent aaecd3e203
commit f131a681ab

View File

@@ -7,7 +7,7 @@ import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label"; import { Label } from "@/components/ui/label";
import { Slider } from "@/components/ui/slider"; import { Slider } from "@/components/ui/slider";
import { Progress } from "@/components/ui/progress"; import { Progress } from "@/components/ui/progress";
import { UploadCloud, Scissors, Download, Loader2, RotateCcw } from "lucide-react"; import { UploadCloud, Scissors, Download, Loader2, RotateCcw, Trash2 } from "lucide-react";
import { getFFmpeg } from "@/lib/ffmpeg"; import { getFFmpeg } from "@/lib/ffmpeg";
import { fetchFile } from "@ffmpeg/util"; import { fetchFile } from "@ffmpeg/util";
@@ -148,6 +148,19 @@ export function VideoEditor() {
} }
}; };
const handleClear = () => {
if (videoSrc) {
URL.revokeObjectURL(videoSrc);
}
setVideoSrc(null);
setVideoFile(null);
setDuration(0);
setTrimValues([0, 0]);
setIsTrimming(false);
setTrimmedVideoUrl(null);
setProgress(0);
};
return ( return (
<Card className="w-full shadow-lg rounded-2xl border"> <Card className="w-full shadow-lg rounded-2xl border">
<CardHeader className="text-center"> <CardHeader className="text-center">
@@ -220,7 +233,12 @@ export function VideoEditor() {
)} )}
</CardContent> </CardContent>
{videoSrc && ( {videoSrc && (
<CardFooter className="flex justify-end space-x-4 p-6"> <CardFooter className="flex justify-between items-center p-6">
<Button variant="destructive" size="lg" onClick={handleClear} disabled={isTrimming}>
<Trash2 className="mr-2 h-5 w-5" />
Clear
</Button>
<div className="flex space-x-4">
<Button variant="ghost" size="lg" onClick={handleReset} disabled={isTrimming}> <Button variant="ghost" size="lg" onClick={handleReset} disabled={isTrimming}>
<RotateCcw className="mr-2 h-5 w-5" /> <RotateCcw className="mr-2 h-5 w-5" />
Reset Reset
@@ -239,6 +257,7 @@ export function VideoEditor() {
Export Export
</a> </a>
</Button> </Button>
</div>
</CardFooter> </CardFooter>
)} )}
</Card> </Card>