import React from 'react'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { injectIntl, FormattedMessage } from 'react-intl'; import { connect } from 'react-redux'; import { fetchBetaPage } from 'soapbox/actions/beta'; import { getSettings } from 'soapbox/actions/settings'; import { getSoapboxConfig } from 'soapbox/actions/soapbox'; import { languages } from '../preferences'; const mapStateToProps = state => ({ locale: getSettings(state).get('locale'), betaPages: getSoapboxConfig(state).get('betaPages'), }); @connect(mapStateToProps) @injectIntl class BetaPage extends ImmutablePureComponent { state = { pageHtml: '', locale: this.props.locale, } loadPageHtml = () => { const { dispatch, match, betaPages } = this.props; const { locale } = this.state; const { slug } = match.params; const page = betaPages.get(slug || 'beta'); const fetchLocale = page && locale !== page.get('default') && page.get('locales').includes(locale); dispatch(fetchBetaPage(slug, fetchLocale && locale)).then(html => { this.setState({ pageHtml: html }); }).catch(error => { // TODO: Better error handling. 404 page? this.setState({ pageHtml: '