in apps/chat/src/components/Common/ContextMenu.tsx [14:80]
function ContextMenuItemRenderer({
featureType,
name,
additionalNameNode,
Icon,
iconClassName = 'text-secondary',
dataQa,
onClick,
disabled,
className,
childMenuItems,
onChildMenuOpenChange,
useStandardColor,
}: MenuItemRendererProps) {
const item = (
<div
className={classNames(
'flex w-full items-center gap-3 truncate break-words',
!!childMenuItems && !disabled && 'text-primary',
!!childMenuItems && className,
)}
>
{Icon && (
<Icon
className={classNames(
'shrink-0',
disabled ? 'text-controls-disable' : iconClassName,
)}
size={18}
height={18}
width={18}
/>
)}
<span className="truncate break-words">
{name} {additionalNameNode}
</span>
</div>
);
if (childMenuItems && !disabled) {
return (
<ContextMenu
menuItems={childMenuItems}
featureType={featureType}
triggerIconClassName={classNames(
className,
'text-secondary',
'hover:bg-accent-primary-alpha',
)}
TriggerCustomRenderer={item}
onOpenChange={onChildMenuOpenChange}
useStandardColor={useStandardColor}
/>
);
}
return (
<MenuItem
className={classNames(
disabled ? 'text-secondary' : 'hover:bg-accent-primary-alpha',
className,
)}
item={item}
onClick={onClick}
data-qa={dataQa}
disabled={disabled}
/>
);
}