The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/components/GenericMenu/GenericMenuItem.tsx

28 lines
900 B

import { MenuItemColumn, MenuItemContent, MenuItemIcon, MenuItemInput } from '@rocket.chat/fuselage';
import type { ComponentProps, MouseEvent, ReactNode } from 'react';
import React from 'react';
export type GenericMenuItemProps = {
id: string;
icon?: ComponentProps<typeof MenuItemIcon>['name'];
content?: ReactNode;
addon?: ReactNode;
onClick?: (e?: MouseEvent<HTMLElement>) => void;
status?: ReactNode;
disabled?: boolean;
description?: ReactNode;
gap?: boolean;
tooltip?: string;
};
const GenericMenuItem = ({ icon, content, addon, status, gap, tooltip }: GenericMenuItemProps) => (
<>
{gap && <MenuItemColumn />}
{icon && <MenuItemIcon name={icon} />}
{status && <MenuItemColumn>{status}</MenuItemColumn>}
{content && <MenuItemContent title={tooltip}>{content}</MenuItemContent>}
{addon && <MenuItemInput>{addon}</MenuItemInput>}
</>
);
export default GenericMenuItem;