All files / src/shared/ui/buttons/TopMenuItemButton TopMenuItemButton.tsx

100% Statements 2/2
100% Branches 4/4
100% Functions 1/1
100% Lines 2/2

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>
	);
});