78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { FormattedMessage } from 'react-intl';
 | |
| 
 | |
| import ImmutablePureComponent from 'react-immutable-pure-component';
 | |
| import { connect } from 'react-redux';
 | |
| 
 | |
| import { fetchServer } from 'mastodon/actions/server';
 | |
| import { domain } from 'mastodon/initial_state';
 | |
| 
 | |
| const mapStateToProps = state => ({
 | |
|   message: state.getIn(['server', 'server', 'registrations', 'message']),
 | |
| });
 | |
| 
 | |
| class ClosedRegistrationsModal extends ImmutablePureComponent {
 | |
| 
 | |
|   componentDidMount () {
 | |
|     const { dispatch } = this.props;
 | |
|     dispatch(fetchServer());
 | |
|   }
 | |
| 
 | |
|   render () {
 | |
|     let closedRegistrationsMessage;
 | |
| 
 | |
|     if (this.props.message) {
 | |
|       closedRegistrationsMessage = (
 | |
|         <p
 | |
|           className='prose'
 | |
|           dangerouslySetInnerHTML={{ __html: this.props.message }}
 | |
|         />
 | |
|       );
 | |
|     } else {
 | |
|       closedRegistrationsMessage = (
 | |
|         <p className='prose'>
 | |
|           <FormattedMessage
 | |
|             id='closed_registrations_modal.description'
 | |
|             defaultMessage='Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.'
 | |
|             values={{ domain: <strong>{domain}</strong> }}
 | |
|           />
 | |
|         </p>
 | |
|       );
 | |
|     }
 | |
| 
 | |
|     return (
 | |
|       <div className='modal-root__modal interaction-modal'>
 | |
|         <div className='interaction-modal__lead'>
 | |
|           <h3><FormattedMessage id='closed_registrations_modal.title' defaultMessage='Signing up on Mastodon' /></h3>
 | |
|           <p>
 | |
|             <FormattedMessage
 | |
|               id='closed_registrations_modal.preamble'
 | |
|               defaultMessage='Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!'
 | |
|             />
 | |
|           </p>
 | |
|         </div>
 | |
| 
 | |
|         <div className='interaction-modal__choices'>
 | |
|           <div className='interaction-modal__choices__choice'>
 | |
|             <h3><FormattedMessage id='interaction_modal.on_this_server' defaultMessage='On this server' /></h3>
 | |
|             {closedRegistrationsMessage}
 | |
|           </div>
 | |
| 
 | |
|           <div className='interaction-modal__choices__choice'>
 | |
|             <h3><FormattedMessage id='interaction_modal.on_another_server' defaultMessage='On a different server' /></h3>
 | |
|             <p className='prose'>
 | |
|               <FormattedMessage
 | |
|                 id='closed_registrations.other_server_instructions'
 | |
|                 defaultMessage='Since Mastodon is decentralized, you can create an account on another server and still interact with this one.'
 | |
|               />
 | |
|             </p>
 | |
|             <a href='https://joinmastodon.org/servers' className='button button--block'><FormattedMessage id='closed_registrations_modal.find_another_server' defaultMessage='Find another server' /></a>
 | |
|           </div>
 | |
|         </div>
 | |
|       </div>
 | |
|     );
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| export default connect(mapStateToProps)(ClosedRegistrationsModal);
 |