// @ts-nocheck 'use client'; import { motion } from 'framer-motion'; import React, { useState } from 'react'; import { cn } from '../../lib/utils'; type Card = { id: number; content: JSX.Element | React.ReactNode | string; className: string; thumbnail: string; }; export const LayoutGrid = ({ cards }: { cards: Card[] }) => { const [selected, setSelected] = useState(null); const [lastSelected, setLastSelected] = useState(null); const handleClick = (card: Card) => { setLastSelected(selected); setSelected(card); }; const handleOutsideClick = () => { setLastSelected(selected); setSelected(null); }; return (
{cards.map((card, i) => (
handleClick(card)} className={cn( card.className, 'relative overflow-hidden', selected?.id === card.id ? 'absolute inset-0 z-50 m-auto flex h-1/2 w-full cursor-pointer flex-col flex-wrap items-center justify-center rounded-lg md:w-1/2' : lastSelected?.id === card.id ? 'z-40 h-full w-full rounded-xl bg-white' : 'h-full w-full rounded-xl bg-white', )} layoutId={`card-${card.id}`} > {selected?.id === card.id && }
))}
); }; const ImageComponent = ({ card }: { card: Card }) => { return ( ); }; const SelectedCard = ({ selected }: { selected: Card | null }) => { return (
{selected?.content}
); };