"use client"; import { useState, useEffect } from "react"; import Link from "next/link"; import Image from "next/image"; import Bars3Icon from "@heroicons/react/24/outline/Bars3Icon"; import XMarkIcon from "@heroicons/react/24/outline/XMarkIcon"; import ChevronUpIcon from "@heroicons/react/24/outline/ChevronUpIcon"; import { heroContent, navigation } from "@/content/marketing-content"; import { Dialog, DialogPanel } from "@headlessui/react"; import { logClientEvent } from "@/lib/axiom/client"; const logoFull = ( ); export default function Header() { const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [scrolled, setScrolled] = useState(false); const [showTopBtn, setShowTopBtn] = useState(false); useEffect(() => { const onScroll = () => { setScrolled(window.scrollY > 20); setShowTopBtn(window.scrollY > 300); }; window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); return ( <> {heroContent.logo.alt} setMobileMenuOpen(true)} className="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-white" > Open main menu {navigation.map((item) => ( item.href.includes("#") && logClientEvent("nav.anchor.click", { label: item.name, href: item.href, }) } > {item.name} ))} {heroContent.loginText} → {heroContent.logo.alt} {logoFull} setMobileMenuOpen(false)} className="-m-2.5 rounded-md p-2.5 text-white" > Close menu {navigation.map((item) => ( item.href.includes("#") && logClientEvent("nav.anchor.click", { label: item.name, href: item.href, }) } > {item.name} ))} {heroContent.loginText} window.scrollTo({ top: 0, behavior: "smooth" })} aria-label="Return to top" className={`fixed bottom-8 right-8 z-40 rounded-full bg-indigo-700 p-3 text-white shadow-lg transition-all duration-300 hover:bg-indigo-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600${ showTopBtn ? " opacity-100 translate-y-0" : " opacity-0 translate-y-4 pointer-events-none" }`} > > ); }