import React from 'react'; import PropTypes from 'prop-types'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faEyeSlash, faEye } from '@fortawesome/free-regular-svg-icons'; import messages from './Visibility.messages'; function Visibility({ to, intl }) { const icon = to === 'private' ? faEyeSlash : faEye; const label = to === 'private' ? intl.formatMessage(messages['profile.visibility.who.just.me']) : intl.formatMessage(messages['profile.visibility.who.everyone']); return ( {label} ); } Visibility.propTypes = { to: PropTypes.oneOf(['private', 'all_users']), // i18n intl: intlShape.isRequired, }; Visibility.defaultProps = { to: 'private', }; function VisibilitySelect({ intl, className, ...props }) { const { value } = props; const icon = value === 'private' ? faEyeSlash : faEye; return ( ); } VisibilitySelect.propTypes = { id: PropTypes.string, className: PropTypes.string, name: PropTypes.string, value: PropTypes.oneOf(['private', 'all_users']), onChange: PropTypes.func, // i18n intl: intlShape.isRequired, }; VisibilitySelect.defaultProps = { id: null, className: null, name: 'visibility', value: null, onChange: null, }; const intlVisibility = injectIntl(Visibility); const intlVisibilitySelect = injectIntl(VisibilitySelect); export { intlVisibility as Visibility, intlVisibilitySelect as VisibilitySelect, };