'use client'
import { useState, useEffect, useCallback } from 'react'
import Image from 'next/image'
import { AnimatePresence, motion } from 'framer-motion'
import { PulseMockup } from '@/components/marketing/mockups/pulse-mockup'
import { PagesCard, ReferrersCard, LocationsCard, TechnologyCard, PeakHoursCard } from '@/components/marketing/mockups/pulse-features-carousel'
import { FunnelMockup } from '@/components/marketing/mockups/funnel-mockup'
import { EmailReportMockup } from '@/components/marketing/mockups/email-report-mockup'
interface Slide {
headline: string
mockup: React.ReactNode
}
function FeatureCard({ children }: { children: React.ReactNode }) {
return (
{children}
)
}
const slides: Slide[] = [
{ headline: 'Your traffic, at a glance.', mockup: },
{ headline: 'See which pages perform best.', mockup: },
{ headline: 'Know where your visitors come from.', mockup: },
{ headline: 'Visitors from around the world.', mockup: },
{ headline: 'Understand your audience\u2019s tech stack.', mockup: },
{ headline: 'Find your peak traffic hours.', mockup: },
{ headline: 'See where visitors drop off.', mockup: },
{ headline: 'Reports delivered to your inbox.', mockup: },
]
export default function FeatureSlideshow() {
const [activeIndex, setActiveIndex] = useState(0)
const advance = useCallback(() => {
setActiveIndex((prev) => (prev + 1) % slides.length)
}, [])
useEffect(() => {
const timer = setInterval(advance, 5000)
return () => clearInterval(timer)
}, [advance])
const slide = slides[activeIndex]
return (
{/* Background image */}
{/* Dark overlay */}
{/* Content */}
{/* Headline — centered */}
{slide.headline}
{/* Mockup — constrained */}
{/* Orange glow */}
{slide.mockup}
)
}