[Glitch] Add support for custom sign-up URLs
Port ca66e61b93 to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
			
			
This commit is contained in:
		@@ -9,6 +9,7 @@ import { openModal, closeModal } from 'flavours/glitch/actions/modal';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = (state, { accountId }) => ({
 | 
					const mapStateToProps = (state, { accountId }) => ({
 | 
				
			||||||
  displayNameHtml: state.getIn(['accounts', accountId, 'display_name_html']),
 | 
					  displayNameHtml: state.getIn(['accounts', accountId, 'display_name_html']),
 | 
				
			||||||
 | 
					  signupUrl: state.getIn(['server', 'server', 'registrations', 'url'], '/auth/sign_up'),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapDispatchToProps = (dispatch) => ({
 | 
					const mapDispatchToProps = (dispatch) => ({
 | 
				
			||||||
@@ -81,6 +82,7 @@ class InteractionModal extends PureComponent {
 | 
				
			|||||||
    url: PropTypes.string,
 | 
					    url: PropTypes.string,
 | 
				
			||||||
    type: PropTypes.oneOf(['reply', 'reblog', 'favourite', 'follow']),
 | 
					    type: PropTypes.oneOf(['reply', 'reblog', 'favourite', 'follow']),
 | 
				
			||||||
    onSignupClick: PropTypes.func.isRequired,
 | 
					    onSignupClick: PropTypes.func.isRequired,
 | 
				
			||||||
 | 
					    signupUrl: PropTypes.string.isRequired,
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  handleSignupClick = () => {
 | 
					  handleSignupClick = () => {
 | 
				
			||||||
@@ -88,7 +90,7 @@ class InteractionModal extends PureComponent {
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  render () {
 | 
					  render () {
 | 
				
			||||||
    const { url, type, displayNameHtml } = this.props;
 | 
					    const { url, type, displayNameHtml, signupUrl } = this.props;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const name = <bdi dangerouslySetInnerHTML={{ __html: displayNameHtml }} />;
 | 
					    const name = <bdi dangerouslySetInnerHTML={{ __html: displayNameHtml }} />;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -121,7 +123,7 @@ class InteractionModal extends PureComponent {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (registrationsOpen) {
 | 
					    if (registrationsOpen) {
 | 
				
			||||||
      signupButton = (
 | 
					      signupButton = (
 | 
				
			||||||
        <a href='/auth/sign_up' className='button button--block button-tertiary'>
 | 
					        <a href={signupUrl} className='button button--block button-tertiary'>
 | 
				
			||||||
          <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
 | 
					          <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,10 @@ const Account = connect(state => ({
 | 
				
			|||||||
  </Permalink>
 | 
					  </Permalink>
 | 
				
			||||||
));
 | 
					));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const mapStateToProps = (state) => ({
 | 
				
			||||||
 | 
					  signupUrl: state.getIn(['server', 'server', 'registrations', 'url'], '/auth/sign_up'),
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapDispatchToProps = (dispatch) => ({
 | 
					const mapDispatchToProps = (dispatch) => ({
 | 
				
			||||||
  openClosedRegistrationsModal() {
 | 
					  openClosedRegistrationsModal() {
 | 
				
			||||||
    dispatch(openModal('CLOSED_REGISTRATIONS'));
 | 
					    dispatch(openModal('CLOSED_REGISTRATIONS'));
 | 
				
			||||||
@@ -32,11 +36,12 @@ class Header extends PureComponent {
 | 
				
			|||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
    openClosedRegistrationsModal: PropTypes.func,
 | 
					    openClosedRegistrationsModal: PropTypes.func,
 | 
				
			||||||
    location: PropTypes.object,
 | 
					    location: PropTypes.object,
 | 
				
			||||||
 | 
					    signupUrl: PropTypes.string.isRequired,
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  render () {
 | 
					  render () {
 | 
				
			||||||
    const { signedIn } = this.context.identity;
 | 
					    const { signedIn } = this.context.identity;
 | 
				
			||||||
    const { location, openClosedRegistrationsModal } = this.props;
 | 
					    const { location, openClosedRegistrationsModal, signupUrl } = this.props;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let content;
 | 
					    let content;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -52,7 +57,7 @@ class Header extends PureComponent {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      if (registrationsOpen) {
 | 
					      if (registrationsOpen) {
 | 
				
			||||||
        signupButton = (
 | 
					        signupButton = (
 | 
				
			||||||
          <a href='/auth/sign_up' className='button'>
 | 
					          <a href={signupUrl} className='button'>
 | 
				
			||||||
            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
 | 
					            <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
 | 
				
			||||||
          </a>
 | 
					          </a>
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
@@ -88,4 +93,4 @@ class Header extends PureComponent {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default withRouter(connect(null, mapDispatchToProps)(Header));
 | 
					export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Header));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
import { useCallback } from 'react';
 | 
					import { useCallback } from 'react';
 | 
				
			||||||
import { FormattedMessage } from 'react-intl';
 | 
					import { FormattedMessage } from 'react-intl';
 | 
				
			||||||
import { useDispatch } from 'react-redux';
 | 
					import { useAppDispatch, useAppSelector } from 'flavours/glitch/store';
 | 
				
			||||||
import { registrationsOpen } from 'flavours/glitch/initial_state';
 | 
					import { registrationsOpen } from 'flavours/glitch/initial_state';
 | 
				
			||||||
import { openModal } from 'flavours/glitch/actions/modal';
 | 
					import { openModal } from 'flavours/glitch/actions/modal';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const SignInBanner = () => {
 | 
					const SignInBanner = () => {
 | 
				
			||||||
  const dispatch = useDispatch();
 | 
					  const dispatch = useAppDispatch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const openClosedRegistrationsModal = useCallback(
 | 
					  const openClosedRegistrationsModal = useCallback(
 | 
				
			||||||
    () => dispatch(openModal('CLOSED_REGISTRATIONS')),
 | 
					    () => dispatch(openModal('CLOSED_REGISTRATIONS')),
 | 
				
			||||||
@@ -14,9 +14,11 @@ const SignInBanner = () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  let signupButton;
 | 
					  let signupButton;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], '/auth/sign_up'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (registrationsOpen) {
 | 
					  if (registrationsOpen) {
 | 
				
			||||||
    signupButton = (
 | 
					    signupButton = (
 | 
				
			||||||
      <a href='/auth/sign_up' className='button button--block'>
 | 
					      <a href={signupUrl} className='button button--block'>
 | 
				
			||||||
        <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
 | 
					        <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
 | 
				
			||||||
      </a>
 | 
					      </a>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user