2021-05-09 01:59:55 +03:00

51 lines
1.4 KiB
TypeScript

import React, { FC, memo } from '../../../lib/teact/teact';
import { ApiMessage, ApiMessageOutgoingStatus } from '../../../api/types';
import { formatTime } from '../../../util/dateFormat';
import { formatIntegerCompact } from '../../../util/textFormat';
import MessageOutgoingStatus from '../../common/MessageOutgoingStatus';
import renderText from '../../common/helpers/renderText';
import useLang from '../../../hooks/useLang';
import './MessageMeta.scss';
type OwnProps = {
message: ApiMessage;
outgoingStatus?: ApiMessageOutgoingStatus;
signature?: string;
onClick: () => void;
};
const MessageMeta: FC<OwnProps> = ({
message, outgoingStatus, signature, onClick,
}) => {
const lang = useLang();
return (
<span className="MessageMeta" onClick={onClick}>
{Boolean(message.views) && (
<>
<span className="message-views">
{formatIntegerCompact(message.views!)}
</span>
<i className="icon-channelviews" />
</>
)}
{signature && (
<span className="message-signature">{renderText(signature)}</span>
)}
<span className="message-time">
{message.isEdited && `${lang('EditedMessage')} `}
{formatTime(message.date * 1000)}
</span>
{outgoingStatus && (
<MessageOutgoingStatus status={outgoingStatus} />
)}
</span>
);
};
export default memo(MessageMeta);