You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
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>
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |