import React, { useEffect } from 'react'
import Button from './Button'
import robotLogo from '../../assets/images/robot-logo.png'
import { BsNewspaper, BsGithub } from 'react-icons/bs'
import Whitepaper from '../../assets/Whitepaper.pdf'
type Props = {}

const menuItems = [
    {
        name: 'Home',
        path: '/',
        id: 'home',
    },
    {
        name: 'About',
        path: '',
        id: 'about',
    },
    {
        name: 'Roadmap',
        path: '',
        id: 'roadmap',
    },
    {
        name: 'Tokenomics',
        path: '',
        id: 'tokenomics',
    },
]

const Header = (props: Props) => {
    const [isScrolled, setIsScrolled] = React.useState(false)
    const [isOpenMenu, setIsOpenMenu] = React.useState(false)
    const [isMobile, setIsMobile] = React.useState(false)

    React.useEffect(() => {
        // check is mobile
        if (window.innerWidth <= 768) {
            setIsMobile(true)
        } else {
            setIsMobile(false)
        }

        if (window.innerWidth <= 1024) {
            setIsScrolled(true)
        } else {
            window.addEventListener('scroll', () => {
                if (window.scrollY > 0) {
                    setIsScrolled(true)
                } else {
                    setIsScrolled(false)
                }
            })
        }
    }, [])

    const jumpToSection = (section: string) => {
        console.log('section', section)
        const element = document.getElementById(section)
        if (element) {
            element.scrollIntoView({ behavior: 'smooth' })
        }
    }

    const openLocalPdf = () => {
        const pdf = Whitepaper
        window.open(pdf)
    }

    return (
        <>
            {isScrolled ? (
                <div className="fixed w-full z-30 p-1 transition-all duration-150 bg-gray-800">
                    <div className="container mx-auto flex justify-between items-center">
                        <div className="flex gap-2 items-center">
                            <div className="bg-white w-8 rounded-full overflow-hidden p-1">
                                <img
                                    src={robotLogo}
                                    className="w-full transition-all duration-150 rounded-full"
                                    alt=""
                                />
                            </div>
                            <h4 className="text-xl transition-all duration-150 text-white uppercase font-bold">
                                SGPT
                            </h4>
                        </div>

                        {
                            // Mobile menu
                            isMobile ? (
                                <div
                                    className="flex flex-col items-center gap-1 px-2 py-1 cursor-pointer"
                                    onClick={() => setIsOpenMenu(!isOpenMenu)}
                                >
                                    <div className="w-6 h-1 bg-white rounded-full"></div>
                                    <div className="w-6 h-1 bg-white rounded-full"></div>
                                    <div className="w-6 h-1 bg-white rounded-full"></div>
                                </div>
                            ) : (
                                <div className="flex gap-10 items-center">
                                    <ul className="flex gap-10">
                                        {menuItems.map((item) => (
                                            <li
                                                className="inline-block"
                                                key={item.path}
                                                onClick={() =>
                                                    jumpToSection(item.id)
                                                }
                                            >
                                                <p className="text-white text-md transition-all duration-150 cursor-pointer transform motion-safe:hover:scale-110 hover:text-orange-500">
                                                    {item.name}
                                                </p>
                                            </li>
                                        ))}
                                    </ul>

                                    <div className="flex gap-4">
                                        <Button
                                            size="sm"
                                            onClick={() => openLocalPdf()}
                                        >
                                            <div className="flex items-center gap-2 shadow-slate-50 transition-all transform motion-safe:hover:scale-110">
                                                <BsNewspaper />
                                                Whitepaper
                                            </div>
                                        </Button>
                                        <Button size="sm">
                                            <div className="flex items-center gap-2 shadow-slate-50 transform motion-safe:hover:scale-110">
                                                <BsGithub />
                                                Audit
                                            </div>
                                        </Button>
                                    </div>
                                </div>
                            )
                        }

                        {
                            // Mobile menu
                            isMobile && isOpenMenu ? (
                                <div className="fixed top-11 right-5 p-4 bg-gray-800 z-40 rounded-xl">
                                    <div className="flex flex-col items-center justify-center h-full">
                                        <ul className="flex flex-col gap-3">
                                            {menuItems.map((item) => (
                                                <li
                                                    className="inline-block"
                                                    key={item.path}
                                                    onClick={() =>
                                                        jumpToSection(item.id)
                                                    }
                                                >
                                                    <p className="text-white text-md transition-all duration-150 cursor-pointer">
                                                        {item.name}
                                                    </p>
                                                </li>
                                            ))}
                                            <li
                                                className="inline-block"
                                                onClick={() => openLocalPdf()}
                                            >
                                                <p className="text-white text-md transition-all duration-150 cursor-pointer">
                                                    Whitepaper
                                                </p>
                                            </li>
                                            <li className="inline-block">
                                                <p className="text-white text-md transition-all duration-150 cursor-pointer">
                                                    Audit
                                                </p>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            ) : null
                        }
                    </div>
                </div>
            ) : (
                <div className="fixed z-30 w-full p-5 transition-all duration-150">
                    <div className="container mx-auto flex justify-between items-center">
                        <div className="flex gap-2 items-center">
                            <div className="bg-white w-12 rounded-full overflow-hidden p-1">
                                <img
                                    src={robotLogo}
                                    className="w-full transition-all duration-150 rounded-full"
                                    alt=""
                                />
                            </div>
                            <h4 className="text-4xl transition-all duration-150 text-white uppercase font-bold">
                                SGPT
                            </h4>
                        </div>

                        <div className="flex gap-10 items-center">
                            <ul className="flex gap-10">
                                {menuItems.map((item) => (
                                    <li
                                        className="inline-block"
                                        key={item.path}
                                        onClick={() => jumpToSection(item.id)}
                                    >
                                        <p className="text-white text-md transition-all duration-150 cursor-pointer">
                                            {item.name}
                                        </p>
                                    </li>
                                ))}
                            </ul>

                            <div className="flex gap-4">
                                <Button
                                    size="md"
                                    onClick={() => openLocalPdf()}
                                >
                                    <div className="flex items-center gap-2">
                                        <BsNewspaper />
                                        Whitepaper
                                    </div>
                                </Button>
                                <Button size="md">
                                    <div className="flex items-center gap-2">
                                        <BsGithub />
                                        Audit
                                    </div>
                                </Button>
                            </div>
                        </div>
                    </div>
                </div>
            )}
        </>
    )
}

export default Header
