import React from "react"; import Image from "next/image"; import Link from "next/link"; import classNames from "classnames"; import { ChartBarIcon, GlobeIcon } from "@heroicons/react/outline"; function Sidebar({ active }) { return ( <div className="w-64 min-w-[16rem] dark:text-white"> {/* Sidebar Head */} <span className="flex justify-center items-center mt-5" id="crypto-logo"> <Image className="" src="/crypto_logo.png" width="190%" height="100%" objectFit="contain" alt="CryptoMetrics-logo-large" priority={true} /> </span> {/* Sidebar Navigation */} <div className="flex flex-col overflow-x-hidden flex-grow"> <nav className="ml-1 my-8 cursor-pointer px-2"> <SidebarItem title="Home" icon={<GlobeIcon className="w-6 h-6" />} to="/" active={active === "home"} /> <SidebarItem title="Compare" icon={<ChartBarIcon className="w-6 h-6" />} to="/compare" active={active === "compare"} /> </nav> </div> </div> ); } function SidebarItem({ title, icon, active, to }) { return ( <Link href={to} passHref> <a className={classNames( `flex items-center h-[56px] rounded-xl whitespace-nowrap font-semibold mx-2 px-4 transition-all duration-200 text-gray-500 dark:text-gray-300 select-none hover:bg-gray-100 hover:bg-opacity-40 my-1 dark:bg-dark-800 dark:hover:bg-dark-700 dark:hover:text-gray-200`, { "text-blue-600 dark:text-blue-600 hover:dark:text-blue-600 bg-gray-200 bg-opacity-40 dark:bg-dark-700 border-2 border-blue-500": active, } )} > <div className="relative flex justify-center items-center flex-shrink-0 text-[0]"> {icon} </div> <div className="ml-4">{title}</div> </a> </Link> ); } export default Sidebar;