// Shared chrome: Nav, Footer, Scroll-to-top, Badges, Icons const { useState, useEffect, useRef } = React; const PinIcon = () => ( ); const ArrowIcon = ({ className }) => ( ); const UpIcon = () => ( ); const CheckIcon = () => ( ); function Nav({ route, setRoute, onContact }) { const [scrolled, setScrolled] = useState(false); const [menuOpen, setMenuOpen] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 8); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); const go = (r) => { setRoute(r); setMenuOpen(false); window.scrollTo({ top: 0, behavior: "instant" }); }; return ( go("home")}> Mynatt Springer P.C. · Est. 1997 1660 Hickory Loop, Las Cruces, NM go("attorneys")}>Attorneys go("practice")}>Practice Areas go("contact")}>Contact go("contact")}>Consult → setMenuOpen(!menuOpen)}> {menuOpen && ( go("home")}>Home go("attorneys")}>Attorneys go("practice")}>Practice Areas go("contact")}>Contact )} ); } function Footer({ setRoute }) { const D = window.MS_DATA; const go = (r) => { setRoute(r); window.scrollTo({ top: 0, behavior: "instant" }); }; return ( ); } function ScrollTop() { const [show, setShow] = useState(false); useEffect(() => { const onScroll = () => setShow(window.scrollY > 600); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); return ( window.scrollTo({ top: 0, behavior: "smooth" })} aria-label="Scroll to top"> ); } Object.assign(window, { Nav, Footer, ScrollTop, PinIcon, ArrowIcon, UpIcon, CheckIcon });