"use client"; import { useState } from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { History, Clock } from "lucide-react"; import { format } from "date-fns"; import { ProjectVersion } from "@/types/project"; interface VersionsPanelProps { versions: ProjectVersion[]; onRestoreVersion: (versionId: string) => void; } const VersionsPanel = ({ versions, onRestoreVersion }: VersionsPanelProps) => { const [expandedVersion, setExpandedVersion] = useState(null); const toggleExpand = (versionId: string) => { setExpandedVersion(expandedVersion === versionId ? null : versionId); }; // Helper function to safely format dates const formatDate = (dateString: string) => { try { const date = new Date(dateString); if (isNaN(date.getTime())) { return "Invalid date"; } return format(date, "MMM d, yyyy h:mm a"); } catch (error) { console.error("Error formatting date:", error); return "Invalid date"; } }; return (

Version History

{versions.length === 0 ? (

No versions found

Your project versions will appear here

) : (
{versions.map((version, index) => { const versionNumber = versions.length - index; const isCurrent = index === 0; return (

Version {versionNumber}

{isCurrent && ( Current )}

{formatDate(version.createdAt)}

{version.messages && version.messages.length > 0 && (
{expandedVersion === version.id && (

{version.messages.find(m => m.role === 'user')?.content || 'No prompt found'}

)}
)}
); })}
)}
); }; export default VersionsPanel;