Skip to content

Commit 3018cfe

Browse files
authored
Update Index.tsx
Signed-off-by: Aitor Alien <[email protected]>
1 parent 1d51a0f commit 3018cfe

File tree

1 file changed

+16
-34
lines changed

1 file changed

+16
-34
lines changed

src/pages/Index.tsx

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,21 @@
1-
import React, { useState, useEffect } from "react";
1+
import React from "react";
22
import { AnimatePresence } from "framer-motion";
33
import { Menu, X } from "lucide-react";
4-
import { useIsMobile } from "@/hooks/use-mobile";
5-
import Logo from "../components/Header/Logo";
6-
import DesktopNav from "./DesktopNav";
7-
import MobileNav from "./MobileNav";
8-
import ConnectButton from "./ConnectButton";
9-
import PriceTicker from "../PriceTicker";
4+
import { useIsMobile } from "src/hooks/use-mobile";
5+
import { useScroll } from "src/hooks/use-scroll";
6+
import Logo from "src/components/Header/Logo";
7+
import DesktopNav from "src/components/Header/DesktopNav";
8+
import MobileNav from "src/components/Header/MobileNav";
9+
import ConnectButton from "src/components/Header/ConnectButton";
10+
import PriceTicker from "src/components/PriceTicker";
1011

1112
const Header = () => {
12-
const [isScrolled, setIsScrolled] = useState(false);
13-
const [isMenuOpen, setIsMenuOpen] = useState(false);
13+
const isScrolled = useScroll();
14+
const [isMenuOpen, setIsMenuOpen] = React.useState(false);
1415
const isMobile = useIsMobile();
1516

16-
useEffect(() => {
17-
// Asegura que `window` esté disponible
18-
if (typeof window === "undefined") return;
19-
20-
const handleScroll = () => {
21-
setIsScrolled(window.scrollY > 10);
22-
};
23-
24-
window.addEventListener("scroll", handleScroll);
25-
return () => window.removeEventListener("scroll", handleScroll);
26-
}, []);
27-
2817
if (isMobile === undefined) {
29-
// Renderiza un loader mientras se determina el estado de `isMobile`
30-
return <div className="bg-alien-space-dark h-16 w-full" />;
18+
return <div className="bg-alien-space-dark h-16 w-full flex items-center justify-center">Cargando...</div>;
3119
}
3220

3321
return (
@@ -37,35 +25,29 @@ const Header = () => {
3725
}`}
3826
>
3927
<div className="container mx-auto px-4 flex justify-between items-center relative">
40-
{/* Logo */}
4128
<Logo />
42-
43-
{/* Navegación de Escritorio */}
4429
<DesktopNav />
45-
46-
{/* Botón de Conexión y Menú Móvil */}
4730
<div className="flex items-center gap-4">
4831
{!isMobile && <ConnectButton />}
4932
{isMobile && (
5033
<button
5134
onClick={() => setIsMenuOpen(!isMenuOpen)}
5235
className="p-2 text-alien-gold focus:outline-none focus:ring-2 focus:ring-alien-gold"
53-
aria-label={isMenuOpen ? "Cerrar menú" : "Abrir menú"}
36+
aria-label={isMenuOpen ? "Cerrar menú de navegación" : "Abrir menú de navegación"}
37+
aria-expanded={isMenuOpen}
38+
aria-controls="mobile-menu"
39+
data-state={isMenuOpen ? "open" : "closed"}
5440
>
5541
{isMenuOpen ? <X size={24} /> : <Menu size={24} />}
5642
</button>
5743
)}
5844
</div>
5945
</div>
60-
61-
{/* Menú Móvil */}
6246
<AnimatePresence>
6347
{isMobile && isMenuOpen && (
64-
<MobileNav isMenuOpen={isMenuOpen} setIsMenuOpen={setIsMenuOpen} />
48+
<MobileNav isMenuOpen={isMenuOpen} setIsMenuOpen={setIsMenuOpen} id="mobile-menu" />
6549
)}
6650
</AnimatePresence>
67-
68-
{/* Ticker de precios */}
6951
<div className="absolute left-0 right-0 bottom-0 translate-y-full w-full bg-alien-space-dark/80">
7052
<PriceTicker />
7153
</div>

0 commit comments

Comments
 (0)