import React, { memo } from '../../lib/teact/teact'; import type { ApiChat, ApiUser } from '../../api/types'; import type { FC } from '../../lib/teact/teact'; import type { ObserveFn } from '../../hooks/useIntersectionObserver'; import { EMOJI_STATUS_LOOP_LIMIT } from '../../config'; import renderText from './helpers/renderText'; import { getChatTitle, getUserFullName, isUserId } from '../../global/helpers'; import buildClassName from '../../util/buildClassName'; import useLang from '../../hooks/useLang'; import VerifiedIcon from './VerifiedIcon'; import FakeIcon from './FakeIcon'; import CustomEmoji from './CustomEmoji'; import PremiumIcon from './PremiumIcon'; import styles from './FullNameTitle.module.scss'; type OwnProps = { peer: ApiChat | ApiUser; className?: string; noVerified?: boolean; noFake?: boolean; withEmojiStatus?: boolean; emojiStatusSize?: number; isSavedMessages?: boolean; noLoopLimit?: boolean; onEmojiStatusClick?: NoneToVoidFunction; observeIntersection?: ObserveFn; }; const FullNameTitle: FC = ({ className, peer, noVerified, noFake, withEmojiStatus, emojiStatusSize, isSavedMessages, noLoopLimit, onEmojiStatusClick, observeIntersection, }) => { const lang = useLang(); const isUser = isUserId(peer.id); const title = isUser ? getUserFullName(peer as ApiUser) : getChatTitle(lang, peer as ApiChat); const emojiStatus = isUser && (peer as ApiUser).emojiStatus; const isPremium = isUser && (peer as ApiUser).isPremium; if (isSavedMessages) { return (

{lang('SavedMessages')}

); } return (

{renderText(title || '')}

{!noVerified && peer.isVerified && } {!noFake && peer.fakeType && } {withEmojiStatus && emojiStatus && ( )} {withEmojiStatus && !emojiStatus && isPremium && }
); }; export default memo(FullNameTitle);