import { home } from '@/routes';
import { Head, Link } from '@inertiajs/react';
import { AnimatePresence, motion } from 'framer-motion';
import { useEffect, useState } from 'react';

type Slide = {
    image: string;
    title: string;
    subtitle: string;
    desc: string;
};

type Service = {
    title: string;
    desc: string;
    image: string;
};

const slides: Slide[] = [
    {
        image: 'images/img1.jpg',
        title: 'Dinas Pemadam Kebakaran',
        subtitle: 'Siaga • Sigap • Tanggap',
        desc: 'Siap 24 jam menanggapi keadaan darurat kebakaran dan penyelamatan.',
    },
    {
        image: 'images/img2.jpg',
        title: 'Pelayanan Cepat & Profesional',
        subtitle: 'Kami Selalu Hadir untuk Anda',
        desc: 'Dengan armada modern dan tim terlatih, kami siap bertindak cepat.',
    },
    {
        image: 'images/img3.jpg',
        title: 'Keselamatan Adalah Prioritas Kami',
        subtitle: 'Edukasi & Pencegahan Kebakaran',
        desc: 'Memberikan pelatihan masyarakat untuk mencegah kebakaran sejak dini.',
    },
];

const services: Service[] = [
    {
        title: 'Pemadaman Kebakaran Profesional',
        desc: 'Respons cepat dengan peralatan modern dan tim terlatih.',
        image: 'images/img1.jpg',
    },
    {
        title: 'Penyelamatan & Evakuasi',
        desc: 'Misi penyelamatan terkoordinasi untuk situasi kritis.',
        image: 'images/img2.jpg',
    },
    {
        title: 'Edukasi & Pelatihan Masyarakat',
        desc: 'Pelatihan hands-on untuk kesiapsiagaan komunitas.',
        image: 'images/img3.jpg',
    },
];

export default function Landing() {
    const [open, setOpen] = useState(false);
    const [index, setIndex] = useState(0);

    // 🔁 Ganti slide tiap 8 detik
    useEffect(() => {
        const interval = setInterval(() => {
            setIndex((prev) => (prev + 1) % slides.length);
        }, 8000);
        return () => clearInterval(interval);
    }, []);

    const current = slides[index];

    return (
        <>
            <Head title="Landing" />

            <nav className="fixed top-0 left-0 z-50 w-full bg-black/60 text-white backdrop-blur-md">
                <div className="mx-auto flex max-w-7xl items-center justify-between gap-4 p-4">
                    <div className="flex items-center gap-3">
                        <Link href={home()}>
                            <img
                                src="logo.png"
                                alt="logo"
                                className="h-10 w-10 flex-none"
                            />
                        </Link>
                        <div className="hidden text-lg font-semibold select-none md:block">
                            Dinas Pemadam Kebakaran
                        </div>
                    </div>

                    {/* Menu Tengah */}
                    <div className="absolute left-1/2 hidden -translate-x-1/2 transform md:flex md:items-center md:space-x-8">
                        <a
                            href="#beranda"
                            className="transition hover:text-red-400"
                        >
                            Beranda
                        </a>
                        <a
                            href="#layanan"
                            className="transition hover:text-red-400"
                        >
                            Layanan
                        </a>
                        <a
                            href="#galeri"
                            className="transition hover:text-red-400"
                        >
                            Galeri
                        </a>
                        <a
                            href="#kontak"
                            className="transition hover:text-red-400"
                        >
                            Kontak
                        </a>
                    </div>

                    {/* CTA + Mobile Menu */}
                    <div className="flex items-center gap-3">
                        <a
                            href="https://wa.me/6281234567890"
                            target="_blank"
                            rel="noopener noreferrer"
                            className="hidden items-center gap-2 rounded-full bg-green-600 px-4 py-2 text-sm font-medium text-white transition hover:bg-green-700 md:inline-flex"
                        >
                            Chat WhatsApp
                        </a>

                        <button
                            aria-label="menu"
                            onClick={() => setOpen((v) => !v)}
                            className="rounded-lg p-2 hover:bg-white/10 md:hidden"
                        >
                            <svg
                                xmlns="http://www.w3.org/2000/svg"
                                className="h-6 w-6"
                                fill="none"
                                viewBox="0 0 24 24"
                                stroke="currentColor"
                            >
                                <path
                                    strokeLinecap="round"
                                    strokeLinejoin="round"
                                    strokeWidth={2}
                                    d="M4 6h16M4 12h16M4 18h16"
                                />
                            </svg>
                        </button>
                    </div>
                </div>

                {/* Mobile menu */}
                {open && (
                    <motion.div
                        initial={{ opacity: 0, y: -8 }}
                        animate={{ opacity: 1, y: 0 }}
                        transition={{ duration: 0.18 }}
                        className="md:hidden"
                    >
                        <div className="space-y-2 bg-black/90 px-6 pt-3 pb-6 text-white">
                            <a href="#beranda" className="block py-2">
                                Beranda
                            </a>
                            <a href="#layanan" className="block py-2">
                                Layanan
                            </a>
                            <a href="#galeri" className="block py-2">
                                Galeri
                            </a>
                            <a href="#kontak" className="block py-2">
                                Kontak
                            </a>
                        </div>
                    </motion.div>
                )}
            </nav>

            {/* ✅ HERO SECTION */}
            <header
                id="beranda"
                className="relative h-screen overflow-hidden bg-black text-white"
            >
                {/* Slideshow */}
                <div className="absolute inset-0">
                    <AnimatePresence mode="wait">
                        <motion.img
                            key={current.image}
                            src={current.image}
                            alt={current.title}
                            className="absolute inset-0 h-full w-full object-cover"
                            initial={{ opacity: 0, scale: 1.05 }}
                            animate={{ opacity: 1, scale: 1 }}
                            exit={{ opacity: 0, scale: 1.05 }}
                            transition={{ duration: 2.4, ease: 'easeInOut' }}
                        />
                    </AnimatePresence>
                    <div className="absolute inset-0 bg-gradient-to-b from-black/20 via-black/40 to-black/60" />
                </div>

                {/* Sparks */}
                <div className="pointer-events-none absolute inset-0 overflow-hidden">
                    {Array.from({ length: 20 }).map((_, i) => (
                        <motion.span
                            key={i}
                            className="absolute h-1 w-1 rounded-full bg-orange-400 opacity-60 blur-sm"
                            initial={{
                                left: `${Math.random() * 100}%`,
                                top: `${Math.random() * 100}%`,
                                scale: Math.random() * 1.2 + 0.2,
                            }}
                            animate={{
                                top: ['110%', '-10%'],
                                opacity: [0.7, 0],
                                left: [
                                    `${Math.random() * 100}%`,
                                    `${Math.random() * 100}%`,
                                ],
                            }}
                            transition={{
                                duration: Math.random() * 6 + 4,
                                repeat: Infinity,
                                ease: 'easeOut',
                                delay: Math.random() * 4,
                            }}
                        />
                    ))}
                </div>

                {/* Hero Text */}
                <div className="relative z-10 flex h-full flex-col items-center justify-end px-6 pb-32 text-center">
                    <AnimatePresence mode="wait">
                        <motion.div
                            key={current.title}
                            initial={{ opacity: 0, y: 30 }}
                            animate={{ opacity: 1, y: 0 }}
                            exit={{ opacity: 0, y: -30 }}
                            transition={{ duration: 0.8 }}
                        >
                            <h1 className="mb-4 max-w-4xl text-4xl leading-tight font-extrabold md:text-4xl">
                                <span className="block text-gray-200 md:text-3xl">
                                    {current.subtitle}
                                </span>
                                <span className="mt-2 block text-red-500">
                                    {current.title}
                                </span>
                            </h1>
                            <p className="mx-auto mb-8 max-w-2xl text-lg text-gray-200 md:text-xl">
                                {current.desc}
                            </p>
                            <a
                                href="/apl/app-debug.apk"
                                className="rounded-full bg-emerald-600 px-6 py-3 text-lg font-medium text-white transition hover:bg-emerald-700"
                            >
                                Download Aplikasi
                            </a>
                        </motion.div>
                    </AnimatePresence>
                </div>
            </header>

            {/* ✅ SERVICES */}
            <section id="layanan" className="bg-gray-50 py-20">
                <motion.div
                    className="mx-auto max-w-6xl px-6 text-center"
                    initial={{ opacity: 0, y: 30 }}
                    whileInView={{ opacity: 1, y: 0 }}
                    transition={{ duration: 0.6 }}
                    viewport={{ once: true }}
                >
                    <h2 className="mb-12 text-3xl font-bold text-gray-800 md:text-4xl">
                        Layanan Kami
                    </h2>

                    <div className="grid gap-8 md:grid-cols-3">
                        {services.map((s, idx) => (
                            <motion.div
                                key={s.title}
                                initial={{ opacity: 0, y: 20 }}
                                whileInView={{ opacity: 1, y: 0 }}
                                viewport={{ once: true }}
                                transition={{
                                    duration: 0.6,
                                    delay: idx * 0.1,
                                }}
                                className="overflow-hidden rounded-2xl bg-white shadow-lg transition hover:-translate-y-1 hover:shadow-xl"
                            >
                                <img
                                    src={s.image}
                                    alt={s.title}
                                    className="h-56 w-full object-cover"
                                />
                                <div className="p-6">
                                    <h3 className="mb-2 text-xl font-semibold text-gray-800">
                                        {s.title}
                                    </h3>
                                    <p className="text-gray-600">{s.desc}</p>
                                </div>
                            </motion.div>
                        ))}
                    </div>
                </motion.div>
            </section>

            {/* ✅ GALLERY */}
            <section id="galeri" className="bg-neutral-200 py-16">
                <motion.div
                    className="mx-auto max-w-6xl px-6 text-center"
                    initial={{ opacity: 0, y: 30 }}
                    whileInView={{ opacity: 1, y: 0 }}
                    transition={{ duration: 0.6 }}
                    viewport={{ once: true }}
                >
                    <h2 className="mb-12 text-3xl font-bold text-gray-800">
                        Galeri Kegiatan
                    </h2>

                    <div className="grid gap-4 sm:grid-cols-2 md:grid-cols-3">
                        {[
                            'images/img1.jpg',
                            'images/img2.jpg',
                            'images/img3.jpg',
                            'images/img1.jpg',
                            'images/img2.jpg',
                            'images/img3.jpg',
                        ].map((u, i) => (
                            <motion.img
                                key={i}
                                src={u}
                                alt={`galeri-${i}`}
                                className="h-48 w-full rounded-2xl object-cover shadow-md transition-transform hover:scale-105"
                                initial={{ opacity: 0, scale: 0.95 }}
                                whileInView={{ opacity: 1, scale: 1 }}
                                viewport={{ once: true }}
                                transition={{
                                    duration: 0.45,
                                    delay: i * 0.05,
                                }}
                            />
                        ))}
                    </div>
                </motion.div>
            </section>

            {/* ✅ CONTACT */}
            <section
                id="kontak"
                className="relative overflow-hidden bg-gradient-to-br from-red-700 via-red-800 to-black py-20 text-white"
            >
                <div className="absolute inset-0 bg-[radial-gradient(circle_at_top_right,rgba(255,255,255,0.08),transparent_50%)]" />

                <motion.div
                    className="relative z-10 mx-auto max-w-4xl px-6 text-center"
                    initial={{ opacity: 0, y: 30 }}
                    whileInView={{ opacity: 1, y: 0 }}
                    transition={{ duration: 0.6 }}
                    viewport={{ once: true }}
                >
                    <h2 className="mb-4 text-3xl font-bold text-amber-300 md:text-4xl">
                        Hubungi Kami
                    </h2>
                    <p className="mb-8 text-gray-200 opacity-90">
                        Tersedia 24 jam — layanan darurat dan informasi umum.
                    </p>

                    <div className="mx-auto max-w-md space-y-3 rounded-2xl bg-white/10 p-8 shadow-2xl ring-1 ring-white/20 backdrop-blur-md">
                        <p className="text-xl font-medium">
                            <span className="text-amber-400">📞</span>{' '}
                            <strong>113</strong> — Darurat
                        </p>
                        <p className="text-gray-200">
                            <span className="text-amber-400">📧</span>{' '}
                            damkar@kota.go.id
                        </p>
                        <p className="text-gray-200">
                            <span className="text-amber-400">📍</span> Jl.
                            Merdeka No. 10, Kota Contoh
                        </p>
                    </div>

                    <div className="mt-10">
                        <a
                            href="tel:113"
                            className="inline-block rounded-full bg-amber-400 px-8 py-3 text-lg font-semibold text-black transition hover:bg-amber-300"
                        >
                            Panggil Sekarang
                        </a>
                    </div>
                </motion.div>
            </section>

            {/* ✅ FOOTER */}
            <footer className="bg-black/95 py-6 text-gray-300">
                <div className="mx-auto max-w-6xl px-6 text-center md:flex md:items-center md:justify-between">
                    <p className="text-sm">
                        © {new Date().getFullYear()} Dinas Pemadam Kebakaran.
                        Semua Hak Dilindungi.
                    </p>
                    <p className="mt-2 text-sm md:mt-0">
                        Darurat 113 • Email: damkar@kota.go.id
                    </p>
                </div>
            </footer>
        </>
    );
}
