File size: 1,010 Bytes
9b906ea | 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 42 43 44 45 | import { cn } from "#/utils/utils";
import {
dropdownMenuRowGapClassName,
dropdownMenuRowIconWrapperClassName,
} from "#/utils/dropdown-classes";
import CheckIcon from "#/icons/checkmark.svg?react";
interface ContextMenuIconTextProps {
icon: React.ComponentType<{ className?: string }>;
text: string;
className?: string;
iconClassName?: string;
isActive?: boolean;
}
export function ContextMenuIconText({
icon: Icon,
text,
className,
iconClassName,
isActive = false,
}: ContextMenuIconTextProps) {
return (
<div
className={cn(
"flex min-w-0 items-center",
dropdownMenuRowGapClassName,
className,
)}
>
<Icon
className={cn(
"h-4 w-4",
dropdownMenuRowIconWrapperClassName,
iconClassName,
)}
/>
<span className="min-w-0 flex-1 leading-5">{text}</span>
{isActive && (
<CheckIcon width={14} height={14} className="shrink-0" aria-hidden />
)}
</div>
);
}
|