"use client"; import Image from "next/image"; import React, { useState } from "react"; import { cn } from "@/lib/utils"; export const Card = React.memo( ({ card, index, hovered, setHovered, }: { card: any; index: number; hovered: number | null; setHovered: React.Dispatch>; }) => (
setHovered(index)} onMouseLeave={() => setHovered(null)} className={cn( "rounded-lg relative bg-gray-100 dark:bg-neutral-900 overflow-hidden h-60 md:h-96 w-full transition-all duration-300 ease-out", hovered !== null && hovered !== index && "blur-sm scale-[0.98]", )} > {card.children}
{card.title}
), ); Card.displayName = "Card"; type Card = { title: string; children: string; }; export function FocusCards({ cards }: { cards: Card[] }) { const [hovered, setHovered] = useState(null); return (
{cards.map((card, index) => ( ))}
); }