All files / src/pages/flowsheet-page/flowsheet/Canvas ContextMenuObject.tsx

92.85% Statements 13/14
100% Branches 9/9
100% Functions 1/1
90% Lines 9/10

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                        355x                 275x   174x     529x       550x 529x 174x   529x   2005x      
import type { ReactNode } from "react";
import { cn } from "@/lib/utils";
 
interface ContextMenuObjectProps {
  onClick: () => void;
  label: string;
  shortcut?: string;
  customClassName?: string;
  ariaLabel?: string;
  icon?: ReactNode;
}
 
export function ContextMenuObject({
  onClick,
  label,
  shortcut,
  customClassName,
  ariaLabel,
  icon,
}: ContextMenuObjectProps) {
  return (
    <>
      <div
        className={cn(
          "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
          customClassName,
        )}
        onClick={onClick}
        aria-label={ariaLabel}
      >
        {icon && <span className="mr-2 shrink-0">{icon}</span>}
        <span>{label}</span>
        <span className="ml-auto text-xs text-muted-foreground">
          {shortcut}
        </span>
      </div>
    </>
  );
}