|
3 | 3 | import Image from "next/image"; |
4 | 4 | import Link from "next/link"; |
5 | 5 | import { motion } from "framer-motion"; |
| 6 | +import { useState } from "react"; |
| 7 | +import { Menu, X } from "lucide-react"; |
6 | 8 | import { useScrollHiddenNav } from "@/hooks/useScrollHiddenNav"; |
7 | 9 | import ToggleButton from "@/components/ui/ToggleButton"; |
8 | 10 | import ConnectBtn from "./ui/ConnectBtn"; |
| 11 | +import { SearchModal } from "./ui/SearchModal"; |
9 | 12 |
|
10 | 13 | export default function Navbar() { |
11 | 14 | const isVisible = useScrollHiddenNav(); |
| 15 | + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); |
12 | 16 |
|
13 | 17 | return ( |
14 | 18 | <motion.div |
@@ -37,11 +41,46 @@ export default function Navbar() { |
37 | 41 | dit |
38 | 42 | </span> |
39 | 43 | </Link> |
40 | | - <div className="flex items-center gap-3 md:gap-4"> |
| 44 | + |
| 45 | + <div className="hidden pe-3.5 md:flex-1 md:justify-end lg:flex"> |
| 46 | + <div className="w-full max-w-xs"> |
| 47 | + <SearchModal isOpen={false} onClose={() => {}} inline /> |
| 48 | + </div> |
| 49 | + </div> |
| 50 | + <div className="hidden items-center gap-3 md:gap-4 lg:flex"> |
41 | 51 | <ToggleButton /> |
42 | 52 | <ConnectBtn /> |
43 | 53 | </div> |
| 54 | + |
| 55 | + <div className="flex items-center gap-2 lg:hidden"> |
| 56 | + <ToggleButton /> |
| 57 | + <button |
| 58 | + onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)} |
| 59 | + className="rounded-full p-2 text-black transition-colors hover:bg-black/10 dark:text-white dark:hover:bg-white/10" |
| 60 | + > |
| 61 | + {isMobileMenuOpen ? <X size={20} /> : <Menu size={20} />} |
| 62 | + </button> |
| 63 | + </div> |
44 | 64 | </div> |
| 65 | + |
| 66 | + {isMobileMenuOpen && ( |
| 67 | + <div className="border-t border-slate-200/10 bg-white/95 lg:hidden dark:border-slate-700/70 dark:bg-slate-950/95"> |
| 68 | + <div className="space-y-4 px-4 py-4"> |
| 69 | + <div className="flex items-center justify-end"> |
| 70 | + <div className="w-full max-w-xs"> |
| 71 | + <SearchModal |
| 72 | + isOpen={false} |
| 73 | + onClose={() => setIsMobileMenuOpen(false)} |
| 74 | + mobile |
| 75 | + /> |
| 76 | + </div> |
| 77 | + </div> |
| 78 | + <div className="flex items-center justify-end gap-3"> |
| 79 | + <ConnectBtn /> |
| 80 | + </div> |
| 81 | + </div> |
| 82 | + </div> |
| 83 | + )} |
45 | 84 | </motion.div> |
46 | 85 | ); |
47 | 86 | } |
0 commit comments