"use client";
import Link from "next/link";
import { LinkTypeItem } from "../_lib/types";
import Logo from "./Logo";
import clsx from "clsx";
import { usePathname } from "next/navigation";
import { useAtom } from "jotai";
import { linkTypeAtom } from "../_lib/atom";
import { LinkType } from "../_lib/data/linkType";

export default function SiderNav({ linkList }: { linkList: LinkType[] }) {
    const pathname = usePathname()
    const [, setSelectType] = useAtom(linkTypeAtom)
    return (
        <div className="w-[220px] flex flex-col gap-y-2 fixed left-0 top-0 h-[100vh]  bg-[#F9F9F9]">
            <div className="bg-white ">
                <Logo />
            </div>
            <nav className="flex flex-col py-1 pl-2">
                {
                    linkList.map((item) => {
                        return (
                            item?.href ?
                                <Link className={clsx("cursor-pointer py-3 flex gap-x-2 items-center hover:bg-[#E0E0E0] rounded pl-3  hover:text-[#5961F9] text-[14px]",
                                    pathname === item.href ? "text-[#5961F9]" : "text-[#515C6B]")
                                } href={item.href} key={item._id}>
                                    {
                                        item.iconElement
                                    }
                                    <span>{item.label}</span>
                                </Link> :
                                <div className="cursor-pointer py-3 flex gap-x-2 items-center hover:bg-[#E0E0E0] rounded pl-3 text-[#515C6B] hover:text-[#5961F9] text-[14px]" key={item._id}
                                    onClick={() => {
                                        setSelectType(item._id)
                                    }}
                                >
                                    <img src={item.icon as string} className="w-[20px] h-[20px] object-cover"></img>

                                    <span>{item.label}</span>
                                </div>

                        )
                    })
                }
            </nav>

        </div >
    )
}