// SPACEWALKER v3 — root app
const { useEffect: useEffectA } = React;

function Cursor2() {
  useEffectA(() => {
    const dot = document.querySelector(".cursor-dot2");
    const cross = document.querySelector(".cursor-cross");
    if (!dot || !cross) return;
    let mx = 0, my = 0, rx = 0, ry = 0;
    const move = (e) => {
      mx = e.clientX; my = e.clientY;
      dot.style.transform = `translate(${mx}px, ${my}px) translate(-50%,-50%)`;
    };
    const animate = () => {
      rx += (mx - rx) * 0.2; ry += (my - ry) * 0.2;
      cross.style.transform = `translate(${rx}px, ${ry}px) translate(-50%,-50%)`;
      requestAnimationFrame(animate);
    };
    const over = (e) => {
      const t = e.target;
      const isHot = t.closest && (t.closest("a") || t.closest("button") || t.closest(".pcard") || t.closest(".work-card") || t.closest(".fcard"));
      if (isHot) { dot.classList.add("hover"); cross.classList.add("hover"); }
      else { dot.classList.remove("hover"); cross.classList.remove("hover"); }
    };
    window.addEventListener("mousemove", move);
    window.addEventListener("mouseover", over);
    animate();
    return () => {
      window.removeEventListener("mousemove", move);
      window.removeEventListener("mouseover", over);
    };
  }, []);
  return (<>
    <div className="cursor-cross"></div>
    <div className="cursor-dot2"></div>
  </>);
}

function LangSwitch() {
  const [, lang, setLang] = useLang();
  const langs = ["en", "ar", "tr"];
  return (
    <div className="lang-switch">
      {langs.map(l => (
        <button key={l}
          className={"lang-btn " + (lang === l ? "active" : "")}
          onClick={() => setLang(l)}>
          {l.toUpperCase()}
        </button>
      ))}
    </div>
  );
}

function Navbar2() {
  const [scrolled, setScrolled] = React.useState(false);
  const [tr] = useLang();
  useEffectA(() => {
    const onScroll = () => setScrolled(window.scrollY > 60);
    window.addEventListener("scroll", onScroll);
    return () => window.removeEventListener("scroll", onScroll);
  }, []);
  return (
    <nav className={"nav " + (scrolled ? "scrolled" : "")}>
      <a href="#" style={{textDecoration:"none"}}>
        <SWLogoName size={36}/>
      </a>
      <div className="nav-links">
        <a href="#work">{tr.nav.work}</a>
        <a href="#market">{tr.nav.market}</a>
        <a href="#contact">{tr.nav.contact}</a>
      </div>
      <div className="nav-right">
        <LangSwitch/>
        <a className="nav-launch" href="https://wa.me/05511527310" target="_blank" rel="noopener">
          <svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor"><path d="M20.5 3.5A11 11 0 0 0 3.7 17.4L2 22l4.7-1.6A11 11 0 1 0 20.5 3.5zM12 20.2a8.2 8.2 0 0 1-4.2-1.1l-.3-.2-2.8 1 .9-2.7-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.6-6c-.3-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1-.2.3-.7.8-.8 1-.2.2-.3.2-.6.1-.3-.1-1.1-.4-2.1-1.3-.8-.7-1.3-1.5-1.4-1.8-.2-.3 0-.4.1-.5.1-.1.3-.3.4-.5.1-.1.2-.3.2-.4.1-.2 0-.3 0-.5 0-.1-.6-1.5-.9-2-.2-.5-.4-.4-.6-.4h-.5c-.2 0-.5.1-.7.3-.2.3-.9.9-.9 2.2 0 1.3.9 2.5 1 2.7.1.2 1.8 2.7 4.3 3.8.6.3 1.1.4 1.5.5.6.2 1.2.2 1.6.1.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.1-.3-.2-.6-.3z"/></svg>
          {tr.nav.launch} <span>→</span>
        </a>
      </div>
    </nav>
  );
}

function App() {
  return (
    <>
      <Cursor2/>
      <Navbar2/>
      <Stage/>
      <HeroBelow/>
      <Work/>
      <Marketplace2/>
      <Contact2/>
    </>
  );
}

ReactDOM.createRoot(document.getElementById("root")).render(<App/>);
