'use client'; import React, { useState, useEffect } from 'react'; import Image from 'next/image'; import { motion } from 'framer-motion'; // Types interface ImageCardProps { src: string; alt: string; index: number; isHovered: boolean; isFirstCard?: boolean; isMobile: boolean; isFront?: boolean; frontCardIndex: number | null; onClick: (index: number) => void; } // Animations const Card: React.FC = ({ src, alt, index, isHovered, isFirstCard, isMobile, isFront, frontCardIndex, onClick }) => { return ( onClick(index)} > {alt} ); }; // Prop types interface CardStack3DProps { images: { src: string; alt: string }[]; } const FlipCard3D: React.FC = ({ images }) => { const [isHovered, setIsHovered] = useState(false); const [isMobile, setIsMobile] = useState(false); const [frontCardIndex, setFrontCardIndex] = useState(null); useEffect(() => { const handleResize = () => { setIsMobile(window.innerWidth <= 768); }; handleResize(); window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, []); const handleCardClick = (index: number) => { setFrontCardIndex((prevIndex) => (prevIndex === index ? null : index)); }; return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > {images.map((image, index) => ( ))}
); }; export default FlipCard3D;