import React from 'react'; import PropTypes from 'prop-types'; import { Text } from 'react-native'; import shortnameToUnicode from '../../utils/shortnameToUnicode'; import CustomEmoji from '../EmojiPicker/CustomEmoji'; import { themes } from '../../constants/colors'; import styles from './styles'; const Emoji = React.memo(({ literal, isMessageContainsOnlyEmoji, getCustomEmoji, baseUrl, customEmojis = true, style = {}, theme }) => { const emojiUnicode = shortnameToUnicode(literal); const emoji = getCustomEmoji && getCustomEmoji(literal.replace(/:/g, '')); if (emoji && customEmojis) { return ( <CustomEmoji baseUrl={baseUrl} style={[ isMessageContainsOnlyEmoji ? styles.customEmojiBig : styles.customEmoji, style ]} emoji={emoji} /> ); } return ( <Text style={[ { color: themes[theme].bodyText }, isMessageContainsOnlyEmoji ? styles.textBig : styles.text, style ]} > {emojiUnicode} </Text> ); }); Emoji.propTypes = { literal: PropTypes.string, isMessageContainsOnlyEmoji: PropTypes.bool, getCustomEmoji: PropTypes.func, baseUrl: PropTypes.string, customEmojis: PropTypes.bool, style: PropTypes.object, theme: PropTypes.string }; export default Emoji;