Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 14x 12x | import type { LucideIcon } from 'lucide-react';
import React from 'react';
interface Props {
label: string;
IconComponent?: LucideIcon;
onClick: () => void;
divider?: boolean;
colorClass?: string;
}
export const TopMenuItemButton = React.memo(function TopMenuItemButton({
label,
IconComponent,
onClick,
divider,
colorClass = 'text-gray-700',
}: Props) {
if (divider) {
return <div className="my-2 h-[1px] bg-gray-200 mx-2" />;
}
return (
<button
onClick={onClick}
className="
w-full flex items-center gap-2
px-3 py-1.5 text-left text-sm
hover:bg-gray-100 transition
text-gray-800 cursor-pointer
"
>
{IconComponent && (
<IconComponent className={`w-4 h-4 ${colorClass}`} strokeWidth={2} />
)}
{label}
</button>
);
});
|