import React from 'react' import PropTypes from 'prop-types' import { NavLink } from 'react-router-dom' import { injectIntl, defineMessages, FormattedMessage } from 'react-intl' import ImmutablePropTypes from 'react-immutable-proptypes' import ImmutablePureComponent from 'react-immutable-pure-component' import Icon from './icon' import Text from './text' class StatusPrepend extends ImmutablePureComponent { render() { const { intl, status, isFeatured, isPromoted, isComment, isPinnedInGroup, } = this.props if (!status) return null const isRepost = (status.get('reblog', null) !== null && typeof status.get('reblog') === 'object') if (!isFeatured && !isPinnedInGroup && !isPromoted && !isRepost && !isComment) return null let iconId if (isFeatured || isPinnedInGroup) iconId = 'pin' else if (isPromoted) iconId = 'star' else if (isRepost) iconId = 'repost' else if (isComment) iconId = 'comment' return (
{ isRepost && !isComment &&
) }} />
} { !isRepost && !isComment && {intl.formatMessage(isFeatured ? messages.pinned : isPinnedInGroup ? messages.pinnedByGroup : messages.promoted)} } { isComment && ) }} /> }
) } } const messages = defineMessages({ filtered: { id: 'status.filtered', defaultMessage: 'Filtered' }, promoted: { id: 'status.promoted', defaultMessage: 'Promoted gab' }, pinned: { id: 'status.pinned', defaultMessage: 'Pinned gab' }, pinnedByGroup: { id: 'status.pinned_by_group', defaultMessage: 'Pinned to group' }, reposted: { id: 'status.reposted_by', defaultMessage: '{name} reposted' }, }) StatusPrepend.propTypes = { intl: PropTypes.object.isRequired, status: ImmutablePropTypes.map, isComment: PropTypes.bool, isFeatured: PropTypes.bool, isPinnedInGroup: PropTypes.bool, isPromoted: PropTypes.bool, } export default injectIntl(StatusPrepend)