Spaces:
Sleeping
Sleeping
File size: 3,285 Bytes
64c5e26 d246db2 6c7ab14 d246db2 64c5e26 6c7ab14 64c5e26 ca314ba 64c5e26 6c7ab14 a9c52b4 6c7ab14 64c5e26 ca314ba 64c5e26 d246db2 64c5e26 d246db2 64c5e26 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
import { useState } from "react";
import { Button } from "./ui/button";
import LogoIcon from "../assets/logo.png";
import { buttonVariants } from "./ui/button";
import {
NavigationMenu,
NavigationMenuItem,
NavigationMenuList,
} from "@/components/ui/navigation-menu";
import {
Sheet,
SheetContent,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet";
import { Menu } from "lucide-react";
import { ModeToggle } from "./mode-toggle";
interface RouteProps {
href: string;
label: string;
}
interface FeatureProps {
image: string;
}
const features: FeatureProps[] = [
{
image: LogoIcon,
},
];
const routeList: RouteProps[] = [
{
href: "#features",
label: "Features",
},
{
href: "#upload",
label: "Upload",
},
];
export const Navbar = () => {
const [isOpen, setIsOpen] = useState<boolean>(false);
return (
<header className="sticky border-b-[1px] top-0 z-40 w-full bg-white dark:border-b-slate-700 dark:bg-background">
<NavigationMenu className="mx-auto">
<NavigationMenuList className="container h-14 px-4 w-screen flex justify-between ">
<NavigationMenuItem className="font-bold flex">
<a
href="/"
className="ml-2 font-bold text-xl flex"
>
{features.map(({ image }: FeatureProps) => (
<img
src={image}
alt="About feature"
className="w-[18px] lg:w-[28px] mx-2"
/>
))}DocVerifyRAG</a>
</NavigationMenuItem>
{/* mobile */}
<span className="flex md:hidden">
<ModeToggle />
<Sheet
open={isOpen}
onOpenChange={setIsOpen}
>
<SheetTrigger className="px-2">
<Menu
className="flex md:hidden h-5 w-5"
onClick={() => setIsOpen(true)}
>
<span className="sr-only">Menu Icon</span>
</Menu>
</SheetTrigger>
<SheetContent side={"left"}>
<SheetHeader>
<SheetTitle className="font-bold text-xl">
DocVerifyRAG
</SheetTitle>
</SheetHeader>
<nav className="flex flex-col justify-center items-center gap-2 mt-4">
<a>
<Button className="w-full md:w-2/3">Join Waitlist</Button>
</a>
</nav>
</SheetContent>
</Sheet>
</span>
{/* desktop */}
<nav className="hidden md:flex gap-2">
{routeList.map((route: RouteProps, i) => (
<a
href={route.href}
key={i}
className={`text-[17px] ${buttonVariants({
variant: "ghost",
})}`}
>
{route.label}
</a>
))}
</nav>
<div className="hidden md:flex gap-2">
<a>
<Button className="w-full ">Join Waitlist
</Button>
</a>
<ModeToggle />
</div>
</NavigationMenuList>
</NavigationMenu>
</header>
);
};
|