diff --git a/frontend/src/components/Home.tsx b/frontend/src/components/Home.tsx index 5b5494c..ad19fda 100644 --- a/frontend/src/components/Home.tsx +++ b/frontend/src/components/Home.tsx @@ -32,7 +32,7 @@ const Hero: React.FC = () => { {/* Left Content */}
-

+

UniLoot - Your
Campus Marketplace,
Simplified! diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index 89c1703..b488e81 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -1,13 +1,33 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import { Link, useNavigate, useLocation } from "react-router-dom"; import { Button } from "@/components/ui/button"; -import { Menu, X } from "lucide-react"; +import { Menu, X, Moon, Sun } from "lucide-react"; const Navbar: React.FC = () => { const [isOpen, setIsOpen] = useState(false); + + const getInitialTheme = () => + typeof document !== "undefined" && document.documentElement.classList.contains("dark") + ? ("dark" as const) + : ("light" as const); + + const [theme, setTheme] = useState<"light" | "dark">(getInitialTheme); const navigate = useNavigate(); const location = useLocation(); + useEffect(() => { + const root = window.document.documentElement; + if (theme === "dark") root.classList.add("dark"); + else root.classList.remove("dark"); + try { + localStorage.setItem("theme", theme); + } catch (err) { + // ignore (e.g. storage not available) + } + }, [theme]); + + const toggleTheme = () => setTheme((prev) => (prev === "dark" ? "light" : "dark")); + const handleNavClick = (path: string) => { navigate(path); setIsOpen(false); @@ -20,11 +40,11 @@ const Navbar: React.FC = () => { ]; return ( -