import classNames from 'classnames'; import { CSSProperties } from 'react'; import { useIsPrivate, useNicknameOrProfileNameOrShortenedPubkey, } from '../../hooks/useParamSelector'; import { Emojify } from './Emojify'; import { PubKey } from '../../session/types'; type Props = { pubkey: string; name?: string | null; profileName?: string | null; module?: | 'module-conversation__user' | 'module-message-search-result__header__name' | 'module-message__author'; boldProfileName?: boolean; shouldShowPubkey: boolean; }; export const ContactName = (props: Props) => { const { pubkey, name, profileName, module, boldProfileName, shouldShowPubkey } = props; const prefix = module || 'module-contact-name'; const convoName = useNicknameOrProfileNameOrShortenedPubkey(pubkey); const isPrivate = useIsPrivate(pubkey); const shouldShowProfile = Boolean(convoName || profileName || name); const commonStyles = { 'min-width': 0, 'text-overflow': 'ellipsis', overflow: 'hidden', } as CSSProperties; const styles = ( boldProfileName ? { fontWeight: 'bold', ...commonStyles, } : commonStyles ) as CSSProperties; const textProfile = profileName || name || convoName || PubKey.shorten(pubkey); return ( {shouldShowProfile ? (
) : null} {shouldShowPubkey ?
{pubkey}
: null}
); };