import AddIcon from '@atlaskit/icon/glyph/add'; import { MentionDescription } from '@atlaskit/mention/resource'; import { UserRole } from '@atlaskit/mention'; import { N300 } from '@atlaskit/theme/colors'; import React, { useCallback, useEffect, MouseEvent, SyntheticEvent, } from 'react'; import { FormattedMessage } from 'react-intl'; import { AvatarStyle, CapitalizedStyle, MentionItemStyle, NameSectionStyle, RowStyle, } from './styles'; import { messages } from '../../messages'; export interface OnMentionEvent { (mention: MentionDescription, event?: SyntheticEvent): void; } export const INVITE_ITEM_DESCRIPTION = { id: 'invite-teammate' }; const leftClick = (event: MouseEvent): boolean => { return ( event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey ); }; export interface Props { productName?: string; onMount?: () => void; onMouseEnter?: OnMentionEvent; onSelection?: OnMentionEvent; selected?: boolean; userRole?: UserRole; } const InviteItem = ({ productName, onMount, onMouseEnter, onSelection, selected, userRole, }: Props) => { const onSelected = useCallback( (event: React.MouseEvent) => { if (leftClick(event) && onSelection) { event.preventDefault(); onSelection(INVITE_ITEM_DESCRIPTION, event); } }, [onSelection], ); const onItemMouseEnter = useCallback( (event: React.MouseEvent) => { if (onMouseEnter) { onMouseEnter(INVITE_ITEM_DESCRIPTION, event); } }, [onMouseEnter], ); useEffect(() => { if (onMount) { onMount(); } }, [onMount]); return ( {productName}, }} /> ); }; export default InviteItem;