import React from 'react'; import { Text, View } from 'react-native'; import Clipboard from '@react-native-clipboard/clipboard'; import { ISubscription, SubscriptionType } from '../../../definitions'; import styles from '../styles'; import { useTheme } from '../../../theme'; import RoomTypeIcon from '../../../containers/RoomTypeIcon'; import { getRoomTitle } from '../../../lib/methods/helpers'; import CollapsibleText from '../../../containers/CollapsibleText'; import EventEmitter from '../../../lib/methods/helpers/events'; import { LISTENER } from '../../../containers/Toast'; import I18n from '../../../i18n'; interface IRoomInfoViewTitle { room?: ISubscription; name?: string; username: string; statusText?: string; type: SubscriptionType; } const RoomInfoViewTitle = ({ room, name, username, statusText, type }: IRoomInfoViewTitle): React.ReactElement => { const { colors } = useTheme(); const copyInfoToClipboard = (data: string) => { Clipboard.setString(data); EventEmitter.emit(LISTENER, { message: I18n.t('Copied_to_clipboard') }); }; if (type === SubscriptionType.DIRECT) { return ( (name ? copyInfoToClipboard(name) : {})} testID='room-info-view-name' style={[styles.roomTitle, { color: colors.fontTitlesLabels }]} > {name} {username && ( copyInfoToClipboard(username)} testID='room-info-view-username' style={[styles.roomUsername, { color: colors.fontSecondaryInfo }]} >{`@${username}`} )} {!!statusText && ( )} ); } return ( {getRoomTitle(room)} ); }; export default RoomInfoViewTitle;