import PropTypes from 'prop-types'; import { PureComponent } from 'react'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { Link } from 'react-router-dom'; import { connect } from 'react-redux'; import { fetchServer } from 'mastodon/actions/server'; import { ServerHeroImage } from 'mastodon/components/server_hero_image'; import { ShortNumber } from 'mastodon/components/short_number'; import { Skeleton } from 'mastodon/components/skeleton'; import Account from 'mastodon/containers/account_container'; import { domain } from 'mastodon/initial_state'; const messages = defineMessages({ aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' }, }); const mapStateToProps = state => ({ server: state.getIn(['server', 'server']), }); class ServerBanner extends PureComponent { static propTypes = { server: PropTypes.object, dispatch: PropTypes.func, intl: PropTypes.object, }; componentDidMount () { const { dispatch } = this.props; dispatch(fetchServer()); } render () { const { server, intl } = this.props; const isLoading = server.get('isLoading'); return (
{domain}, mastodon: Mastodon }} />
{isLoading ? ( <>

) : server.get('description')}

{isLoading ? ( <>
) : ( <>
)}
); } } export default connect(mapStateToProps)(injectIntl(ServerBanner));