import React, { useState, useRef } from 'react'; import { motion } from 'framer-motion'; import { Swiper, SwiperSlide } from 'swiper/react'; import { Navigation, Pagination, Autoplay } from 'swiper/modules'; import { Play, X, ChevronLeft, ChevronRight } from 'lucide-react'; // Import Swiper styles import 'swiper/css'; import 'swiper/css/navigation'; import 'swiper/css/pagination'; const VideoSwiperGallery = ({ videos }) => { const [selectedVideo, setSelectedVideo] = useState(null); const swiperRef = useRef(null); const displayVideos = videos || []; if (displayVideos.length === 0) return null; const getEmbedUrl = (url) => { if (!url) return ''; let embedUrl = url; if (url.includes('youtu.be/')) { embedUrl = url.replace('youtu.be/', 'www.youtube.com/embed/'); } else if (url.includes('youtube.com/watch?v=')) { embedUrl = url.replace('youtube.com/watch?v=', 'youtube.com/embed/'); } return embedUrl.split('?')[0] + '?autoplay=1'; }; const VideoCard = ({ video }) => { const [isHovered, setIsHovered] = useState(false); return ( setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} onClick={() => setSelectedVideo(video)} >
{/* Thumbnail */}
Video Thumbnail {/* Overlay */}
{/* Play Button */}
); }; // Video Modal const VideoModal = () => { if (!selectedVideo) return null; return ( setSelectedVideo(null)} > e.stopPropagation()} > {/* Close Button */} {/* Video Player */}
); }; return (
{/* Header */}

Video Gallery

Discover profiles through their stories

{/* Swiper Container */}
{displayVideos.map((video) => ( ))} {/* Custom Navigation Buttons */} {/* Custom Navigation Buttons */} swiperRef.current?.swiper.slidePrev()} className="hidden sm:flex absolute left-0 top-1/2 -translate-y-1/2 z-10 bg-white/20 backdrop-blur-sm rounded-full flex items-center justify-center hover:bg-white/30 transition-all w-12 h-12 rounded-full shadow-xl hover:shadow-2xl items-center justify-center " > swiperRef.current?.swiper.slideNext()} className="hidden sm:flex absolute right-0 top-1/2 -translate-y-1/2 z-10 bg-white/20 backdrop-blur-sm rounded-full flex items-center justify-center hover:bg-white/30 transition-all w-12 h-12 rounded-full shadow-xl hover:shadow-2xl items-center justify-center transition-all" >
{/* View All Button */} {/* View All Videos */}
{/* Video Modal */} {selectedVideo && } {/* Custom Swiper Styles */}
); }; export default VideoSwiperGallery;