"use client"; import { useState } from "react"; import { VersionTag } from "./version-tag"; import { ChangeGroup } from "./change-group"; import { formatDate2 } from "@/lib/utils"; import { Button } from "@/components/ui/button"; import Image from "next/image"; import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"; import { Separator } from "@/components/ui/separator"; interface VersionEntryProps { version: string; date: string; description?: string; image?: string; changes: { Added?: string[]; Improved?: string[]; Fixed?: string[]; Deprecated?: string[]; Removed?: string[]; }; isLast?: boolean; } export function VersionEntry({ version, date, description, image, changes, isLast }: VersionEntryProps) { const [expanded, setExpanded] = useState(false); return (
{/* Version header */}
{description && (

{description}

)} {image && (
{`Version
)}
{/* Changes */}
{Object.entries(changes).map(([type, items]) => ( items && items.length > 0 && ( ) ))}
{/* Show more/less button */} {Object.values(changes).some(items => items && items.length > 5) && ( )}
{/* Version divider */} {!isLast && (
)}
); }