Newer
Older
"use client"

Yusuf Akgül
committed
import { Icons, IconsType } from "@/components/icons"
import { buttonVariants } from "@/components/ui/button"
import { cn } from "@/lib/utils"
import { SidebarNavItem } from "@/types"

Yusuf Akgül
committed
import Link from "next/link"
import { usePathname } from "next/navigation"
import { ModeToggle } from "./mode-toggle"
export const Sidebar = ({ items, user }: { items: SidebarNavItem[], user: User | undefined }) => {

Yusuf Akgül
committed
const path = usePathname()
if (!items?.length) {

Yusuf Akgül
committed
return null
return (
<nav className="grid items-start gap-2">
{visibleItems.map((item, index) => {

Yusuf Akgül
committed
const Icon = Icons[item.icon as keyof IconsType || "arrowRight"]
<Link key={index} href={item.disabled ? "/" : item.href} className={item.title === "Settings" ? "mt-10" : ""}>
<span
className={cn(
"group flex items-center rounded-md px-3 py-2 font-medium hover:bg-accent hover:text-accent-foreground",
path === item.href ? "bg-accent" : "transparent",
item.disabled && "cursor-not-allowed opacity-80"
)}
>
<Icon className="mr-3 h-5 w-5" />
<span>{item.title}</span>
</span>
</Link>
<div className="mt-24 space-y-3 justify-center text-center">
<Link href="/login" className={cn(buttonVariants({ size: "lg" }), "w-full")}>
Log In
</Link>
<Link href="/signup" className={cn(buttonVariants({ size: "lg", variant: "outline" }), "w-full")}>
Sign Up
</Link>
<h4 className="text-sm">
Unlock endless possibilities - sign up or log in to unleash the full potential of our website.

Yusuf Akgül
committed
)