diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 1a145f4b..fb4ff79f 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,11 +1,12 @@ import React, { useState, useEffect } from 'react'; -import { Menu, X, Search, Sun, Moon } from 'lucide-react'; +import { Menu, Search, Sun, Moon } from 'lucide-react'; import { useLocation, Link } from 'react-router-dom'; import { useTheme } from '../context/ThemeContext'; +import Sidebar from './Sidebar'; const Header: React.FC = () => { const [isScrolled, setIsScrolled] = useState(false); - const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); const location = useLocation(); const { theme, toggleTheme } = useTheme(); const isLandingPage = location.pathname === '/'; @@ -36,31 +37,34 @@ const Header: React.FC = () => { >
- {/* Logo */} - - iotastudio logo -
- - iotastudio - - - .ai - -
- +
+ {/* Hamburger Menu */} + + {/* Logo */} + + iotastudio logo +
+ + iotastudio + + + .ai + +
+ +
+ - {/* Nav */} - {/* Desktop Icons */}
@@ -91,69 +95,22 @@ const Header: React.FC = () => {
- {/* Mobile Toggle */} - -
-
- - {/* Mobile Menu */} - {isMobileMenuOpen && ( -
-
- +
- )} + + setIsSidebarOpen(false)} /> ); }; diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx new file mode 100644 index 00000000..649874fe --- /dev/null +++ b/src/components/Sidebar.tsx @@ -0,0 +1,69 @@ +import React from 'react'; +import { X } from 'lucide-react'; +import { HashLink } from 'react-router-hash-link'; +import { Link } from 'react-router-dom'; + +interface SidebarProps { + isOpen: boolean; + onClose: () => void; +} + +const navLinks = [ + { name: 'Home', href: '/browse-models' }, + { name: 'Features', href: '#features' }, + { name: 'How It Works', href: '#how-it-works' }, + { name: 'For Developers', href: '#for-developers' }, + { name: 'For Users', href: '#for-users' }, +]; + +const Sidebar: React.FC = ({ isOpen, onClose }) => { + return ( + <> + {/* Overlay */} +
+ + {/* Sidebar */} +
+
+

Menu

+ +
+ +
+ + ); +}; + +export default Sidebar; \ No newline at end of file diff --git a/src/main.tsx b/src/main.tsx index cbedcbc2..05589e20 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -23,20 +23,18 @@ function ThemedApp() { const { theme } = useTheme(); return ( -
- - - }> - } /> - } /> - } /> - } /> - } /> - } /> {/* ✅ ADD THIS */} - } /> - - - +
+ + }> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + +
); } @@ -44,7 +42,9 @@ function ThemedApp() { createRoot(document.getElementById('root')!).render( - + + + );