// Received/read indicator. import React from 'react'; import { defineMessages, injectIntl } from 'react-intl'; import { Tinode } from 'tinode-sdk'; import { deliveryMarker } from '../lib/utils.js'; const messages = defineMessages({ message_sending: { id: 'message_sending', defaultMessage: 'sending...', description: 'Message being sent, in place of time stamp' }, message_sending_failed: { id: 'message_sending_failed', defaultMessage: 'failed', description: 'Failed to send message, in place of time stamp' }, message_edited_marker: { id: 'message_edited_marker', defaultMessage: ', edited', description: 'Marker indicating that the message was edited' } }); class ReceivedMarker extends React.PureComponent { render() { const {formatMessage} = this.props.intl; let timestamp; if (this.props.received <= Tinode.MESSAGE_STATUS_SENDING) { timestamp = formatMessage(messages.message_sending); } else if (this.props.received == Tinode.MESSAGE_STATUS_FAILED) { timestamp = formatMessage(messages.message_sending_failed); } else { timestamp = this.props.timestamp.toLocaleTimeString(this.props.intl.locale, { timeStyle: 'short' }); } const icon = deliveryMarker(this.props.received); const marker = icon ? {icon.name} : null; const edited = this.props.edited ? formatMessage(messages.message_edited_marker) : null; return ( {timestamp}{edited}{'\u00a0'}{marker} ); } }; export default injectIntl(ReceivedMarker);