|  |  |  | import React from 'react'; | 
					
						
							|  |  |  | import classNames from 'classnames'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import { Emojify } from './Emojify'; | 
					
						
							|  |  |  | import { LocalizerType } from '../../types/Util'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | interface Props { | 
					
						
							|  |  |  |   phoneNumber: string; | 
					
						
							|  |  |  |   name?: string; | 
					
						
							|  |  |  |   profileName?: string; | 
					
						
							|  |  |  |   i18n: LocalizerType; | 
					
						
							|  |  |  |   module?: string; | 
					
						
							|  |  |  |   boldProfileName?: Boolean; | 
					
						
							|  |  |  |   compact?: Boolean; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class ContactName extends React.Component<Props> { | 
					
						
							|  |  |  |   public render() { | 
					
						
							|  |  |  |     const { | 
					
						
							|  |  |  |       phoneNumber, | 
					
						
							|  |  |  |       name, | 
					
						
							|  |  |  |       profileName, | 
					
						
							|  |  |  |       i18n, | 
					
						
							|  |  |  |       module, | 
					
						
							|  |  |  |       boldProfileName, | 
					
						
							|  |  |  |       compact, | 
					
						
							|  |  |  |     } = this.props; | 
					
						
							|  |  |  |     const prefix = module ? module : 'module-contact-name'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const title = name ? name : phoneNumber; | 
					
						
							|  |  |  |     const shouldShowProfile = Boolean(profileName && !name); | 
					
						
							|  |  |  |     const styles = (boldProfileName | 
					
						
							|  |  |  |       ? { | 
					
						
							|  |  |  |           fontWeight: 'bold', | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       : {}) as React.CSSProperties; | 
					
						
							|  |  |  |     const profileElement = shouldShowProfile ? ( | 
					
						
							|  |  |  |       <span style={styles} className={`${prefix}__profile-name`}> | 
					
						
							|  |  |  |         <Emojify text={profileName || ''} i18n={i18n} /> | 
					
						
							|  |  |  |       </span> | 
					
						
							|  |  |  |     ) : null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return ( | 
					
						
							|  |  |  |       <span className={classNames(prefix, compact && 'compact')} dir="auto"> | 
					
						
							|  |  |  |         {profileElement} | 
					
						
							|  |  |  |         {shouldShowProfile ? ' ' : null} | 
					
						
							|  |  |  |         <span | 
					
						
							|  |  |  |           className={classNames( | 
					
						
							|  |  |  |             `${prefix}__profile-number`, | 
					
						
							|  |  |  |             shouldShowProfile && 'italic' | 
					
						
							|  |  |  |           )} | 
					
						
							|  |  |  |         > | 
					
						
							|  |  |  |           <Emojify text={title} i18n={i18n} /> | 
					
						
							|  |  |  |         </span> | 
					
						
							|  |  |  |       </span> | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |