import { motion } from "framer-motion"; import { useState, Dispatch, SetStateAction } from "react"; export type OptionProps = { Icon: any; title: string; selected?: string; setSelected?: Dispatch>; open: boolean; notifs?: number; active?: boolean; }; const Option = ({ Icon, title, selected, setSelected, open, notifs, active }: OptionProps) => { const [hovered, setHovered] = useState(false); const isActive = active ?? selected === title; return ( setSelected?.(title)} onMouseEnter={() => setHovered(true)} onMouseLeave={() => setHovered(false)} className={`relative flex h-10 w-full items-center rounded-md transition-colors cursor-pointer ${isActive ? "bg-slate-400 text-black" : "text-black hover:bg-slate-100"}`} > {open && ( {title} )} {!open && hovered && ( {title} )} {notifs && open && ( {notifs} )} ); }; export default Option;