import React, { useState } from "react"; import { Button } from "@/components/ui/button"; import { Progress } from "@/components/ui/progress"; import { X, ArrowLeft, ArrowRight } from "lucide-react"; import { motion, AnimatePresence } from "framer-motion"; import { usePage } from "@inertiajs/react"; import { Link } from "@inertiajs/react"; const PopupModal = ({ onClose }: { onClose: () => void }) => { const { sekilasInfo } = usePage().props as any; const [isVisible, setIsVisible] = useState(true); const [currentSlide, setCurrentSlide] = useState(0); const progressValue = ((currentSlide + 1) / sekilasInfo.length) * 100; const slides = sekilasInfo.map((info: any) => ({ title: info.JudulPost, image: `/storage/${info.ImagePost}`, description: info.DescPost.replace(/<[^>]*>/g, "").slice(0, 160) + "...", slug: info.SlugPost, })); const nextSlide = () => { setCurrentSlide((prev) => (prev + 1) % slides.length); }; const prevSlide = () => { setCurrentSlide((prev) => (prev - 1 + slides.length) % slides.length); }; const handleClose = () => { setIsVisible(false); setTimeout(onClose, 500); }; return ( {isVisible && sekilasInfo.length > 0 && (

{slides[currentSlide].title}

Popup Slide Image
{currentSlide + 1} / {slides.length}

{slides[currentSlide].description}

)}
); }; export default PopupModal;