diff --git a/src/components/Header.tsx b/src/components/Header.tsx new file mode 100644 index 0000000..39ae1a8 --- /dev/null +++ b/src/components/Header.tsx @@ -0,0 +1,100 @@ +import { useState, useEffect } from "react"; +import { Link } from "react-router-dom"; +import { Button } from "@/components/ui/button"; +import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; +import { Menu, Search } from "lucide-react"; +import { ThemeToggle } from "@/components/ThemeToggle"; + +const navLinks = [ + { label: "Technology", to: "/category/technology" }, + { label: "Design", to: "/category/design" }, + { label: "Business", to: "/category/business" }, + { label: "Lifestyle", to: "/category/lifestyle" }, +]; + +export default function Header() { + const [mobileOpen, setMobileOpen] = useState(false); + const [scrolled, setScrolled] = useState(false); + + useEffect(() => { + const onScroll = () => setScrolled(window.scrollY > 20); + window.addEventListener("scroll", onScroll); + return () => window.removeEventListener("scroll", onScroll); + }, []); + + return ( +
+
+ {/* Logo */} + +
+ B +
+ ByteSize + + + {/* Desktop Nav */} + + + {/* Right Actions */} +
+ + + + + {/* Mobile Menu */} + + + + + +
+ {navLinks.map((l) => ( + setMobileOpen(false)} + > + {l.label} + + ))} +
+ setMobileOpen(false)}> + Search + +
+
+ + +
+
+
+
+
+
+
+ ); +}