import { memo } from '../../../../lib/teact/teact'; import { withGlobal } from '../../../../global'; import type { ApiMessage, ApiPeer } from '../../../../api/types'; import type { ApiMessageActionSuggestedPostApproval } from '../../../../api/types/messageActions'; import { getPeerTitle } from '../../../../global/helpers/peers'; import { selectSender } from '../../../../global/selectors'; import buildClassName from '../../../../util/buildClassName'; import { renderPeerLink, translateWithYou } from '../helpers/messageActions'; import useLang from '../../../../hooks/useLang'; import Icon from '../../../common/icons/Icon'; import styles from '../ActionMessage.module.scss'; type OwnProps = { message: ApiMessage; action: ApiMessageActionSuggestedPostApproval; onClick?: NoneToVoidFunction; }; type StateProps = { sender?: ApiPeer; }; const SuggestedPostRejected = ({ message, action, sender, onClick, }: OwnProps & StateProps) => { const lang = useLang(); const { isOutgoing } = message; const { rejectComment } = action; const senderTitle = sender && getPeerTitle(lang, sender); const senderLink = renderPeerLink(sender?.id, senderTitle || lang('ActionFallbackUser')); return (
{translateWithYou( lang, rejectComment ? 'SuggestedPostRejectedWithReason' : 'SuggestedPostRejected', isOutgoing, { peer: senderLink }, { withMarkdown: true }, )}
{rejectComment && (
{lang('SuggestedPostRejectedComment', { comment: rejectComment })}
)}
); }; export default memo(withGlobal( (global, { message }): StateProps => { const sender = selectSender(global, message); return { sender, }; }, )(SuggestedPostRejected));