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, onOpenProModal, } = this.props if (!status) return null const isRepost = (status.get('reblog', null) !== null && typeof status.get('reblog') === 'object') const showRepostedComment = !!status.getIn(['reblog', 'in_reply_to_account_id'], null) && isRepost const reblogUrl = status.getIn(['reblog', 'url'], null) 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 && !showRepostedComment &&
) }} />
} { isRepost && !isComment && showRepostedComment &&
), comment: ( comment ), this_post: ( a post ) }} />
} { !isRepost && !isComment && {intl.formatMessage(isFeatured ? messages.pinned : isPinnedInGroup ? messages.pinnedByGroup : messages.promoted)} } { isComment && ) }} /> }
{ isPromoted &&
}
) } } 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, onOpenProModal: PropTypes.func.isRequired, } export default injectIntl(StatusPrepend)