// Package imports // import React from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Icon from 'flavours/glitch/components/icon'; const messages = defineMessages({ public: { id: 'privacy.public.short', defaultMessage: 'Public' }, unlisted: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' }, private: { id: 'privacy.private.short', defaultMessage: 'Followers-only' }, direct: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, }); export default @injectIntl class VisibilityIcon extends ImmutablePureComponent { static propTypes = { visibility: PropTypes.string, intl: PropTypes.object.isRequired, withLabel: PropTypes.bool, }; render() { const { withLabel, visibility, intl } = this.props; const visibilityIcon = { public: 'globe', unlisted: 'unlock', private: 'lock', direct: 'envelope', }[visibility]; const label = intl.formatMessage(messages[visibility]); const icon = (