"use client"; import { useState, useEffect } from 'react'; import { Card } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Input } from '@/components/ui/input'; import { Search, Filter, Video, Calendar, Eye, Edit, Trash2, MoreHorizontal, Play } from 'lucide-react'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; interface HistoryItem { id: number; title: string; type: 'script-to-video' | 'video-to-video'; status: 'completed' | 'processing' | 'failed'; createdAt: string; duration?: string; thumbnail?: string; } export function HistoryPage() { const [searchTerm, setSearchTerm] = useState(''); const [historyItems, setHistoryItems] = useState([]); const [filteredItems, setFilteredItems] = useState([]); // Mock data - replace with actual API call useEffect(() => { const mockData: HistoryItem[] = [ { id: 1, title: "Sample Script Video", type: "script-to-video", status: "completed", createdAt: "2024-01-15", duration: "2:30", thumbnail: "/assets/empty_video.png" }, { id: 2, title: "Video Enhancement Project", type: "video-to-video", status: "processing", createdAt: "2024-01-14", duration: "1:45" }, { id: 3, title: "Marketing Video", type: "script-to-video", status: "completed", createdAt: "2024-01-13", duration: "3:15", thumbnail: "/assets/empty_video.png" } ]; setHistoryItems(mockData); setFilteredItems(mockData); }, []); // Filter items based on search term useEffect(() => { const filtered = historyItems.filter(item => item.title.toLowerCase().includes(searchTerm.toLowerCase()) ); setFilteredItems(filtered); }, [searchTerm, historyItems]); const getStatusBadgeVariant = (status: string) => { switch (status) { case 'completed': return 'default'; case 'processing': return 'secondary'; case 'failed': return 'destructive'; default: return 'default'; } }; const getTypeIcon = (type: string) => { return type === 'script-to-video' ? '📝' : '🎥'; }; return (
{/* Header */}

Project History

View and manage your video projects

{/* Search and Filter */}
setSearchTerm(e.target.value)} className="pl-10 bg-white/5 border-white/20 text-white placeholder:text-white/40" />
{/* Project Grid */} {filteredItems.length === 0 ? ( ) : (
{filteredItems.map((item) => ( {/* Thumbnail */}
{item.thumbnail ? ( {item.title} ) : (
)} {/* Play overlay */}
{/* Type indicator */}
{getTypeIcon(item.type)}
{/* Duration */} {item.duration && (
{item.duration}
)}
{/* Content */}

{item.title}

View Edit Delete
{item.createdAt}
{item.status}
))}
)}
); }