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