M app/javascript/flavours/glitch/features/interaction_modal/index.jsx => app/javascript/flavours/glitch/features/interaction_modal/index.jsx +35 -10
@@ 13,7 13,7 @@ import { openModal, closeModal } from 'flavours/glitch/actions/modal';
import api from 'flavours/glitch/api';
import Button from 'flavours/glitch/components/button';
import { Icon } from 'flavours/glitch/components/icon';
-import { registrationsOpen } from 'flavours/glitch/initial_state';
+import { registrationsOpen, sso_redirect } from 'flavours/glitch/initial_state';
const messages = defineMessages({
loginPrompt: { id: 'interaction_modal.login.prompt', defaultMessage: 'Domain of your home server, e.g. mastodon.social' },
@@ 331,18 331,36 @@ class InteractionModal extends React.PureComponent {
}
let signupButton;
+ let signUpOrSignInButton;
- if (registrationsOpen) {
- signupButton = (
- <a href='/auth/sign_up' className='link-button'>
- <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+ if (sso_redirect) {
+ signUpOrSignInButton = (
+ <a href={sso_redirect} data-method='post' className='button button--block button-tertiary'>
+ <FormattedMessage id='sign_in_banner.sso_redirect' defaultMessage='Login or Register' />
</a>
- );
+ )
} else {
- signupButton = (
- <button className='link-button' onClick={this.handleSignupClick}>
- <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
- </button>
+ if(registrationsOpen) {
+ signupButton = (
+ <a href='/auth/sign_up' className='link-button'>
+ <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+ </a>
+ );
+ } else {
+ signupButton = (
+ <button className='button button--block button-tertiary' onClick={this.handleSignupClick}>
+ <FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
+ </button>
+ );
+ }
+
+ signUpOrSignInButton = (
+ <>
+ <a href='/auth/sign_in' className='button button--block'>
+ <FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Login' />
+ </a>
+ {signupButton}
+ </>
);
}
@@ 353,6 371,13 @@ class InteractionModal extends React.PureComponent {
<p>{actionDescription} <strong><FormattedMessage id='interaction_modal.sign_in' defaultMessage='You are not logged in to this server. Where is your account hosted?' /></strong></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>
+ {signUpOrSignInButton}
+ </div>
+ </div>
+
<IntlLoginForm resourceUrl={url} />
<p className='hint'><FormattedMessage id='interaction_modal.sign_in_hint' defaultMessage="Tip: That's the website where you signed up. If you don't remember, look for the welcome e-mail in your inbox. You can also enter your full username! (e.g. @Mastodon@mastodon.social)" /></p>
M => +26 -19
@@ 13,7 13,7 @@ import { Avatar } from 'flavours/glitch/components/avatar';
import { Icon } from 'flavours/glitch/components/icon';
import { WordmarkLogo, SymbolLogo } from 'flavours/glitch/components/logo';
import Permalink from 'flavours/glitch/components/permalink';
import { registrationsOpen, me } from 'flavours/glitch/initial_state';
import { registrationsOpen, me, sso_redirect } from 'flavours/glitch/initial_state';
const Account = connect(state => ({
account: state.getIn(['accounts', me]),
@@ 74,28 74,35 @@ class Header extends PureComponent {
</>
);
} else {
let signupButton;
if (registrationsOpen) {
signupButton = (
<a href={signupUrl} className='button'>
<FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
</a>
);
if (sso_redirect) {
content = (
<a href={sso_redirect} data-method='post' className='button button--block button-tertiary'><FormattedMessage id='sign_in_banner.sso_redirect' defaultMessage='Login or Register' /></a>
)
} else {
signupButton = (
<button className='button' onClick={openClosedRegistrationsModal}>
<FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
</button>
let signupButton;
if (registrationsOpen) {
signupButton = (
<a href={signupUrl} className='button'>
<FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
</a>
);
} else {
signupButton = (
<button className='button' onClick={openClosedRegistrationsModal}>
<FormattedMessage id='sign_in_banner.create_account' defaultMessage='Create account' />
</button>
);
}
content = (
<>
{signupButton}
<a href='/auth/sign_in' className='button button-tertiary'><FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Login' /></a>
</>
);
}
content = (
<>
{signupButton}
<a href='/auth/sign_in' className='button button-tertiary'><FormattedMessage id='sign_in_banner.sign_in' defaultMessage='Login' /></a>
</>
);
}
return (
M app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx => app/javascript/flavours/glitch/features/ui/components/sign_in_banner.jsx +11 -2
@@ 3,7 3,7 @@ import { useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
import { openModal } from 'flavours/glitch/actions/modal';
-import { registrationsOpen } from 'flavours/glitch/initial_state';
+import { registrationsOpen, sso_redirect } from 'flavours/glitch/initial_state';
import { useAppDispatch, useAppSelector } from 'flavours/glitch/store';
const SignInBanner = () => {
@@ 16,7 16,16 @@ const SignInBanner = () => {
let signupButton;
- const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up');
+ const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up');
+
+ if (sso_redirect) {
+ return (
+ <div className='sign-in-banner'>
+ <p><FormattedMessage id='sign_in_banner.text' defaultMessage='Login to follow profiles or hashtags, favorite, share and reply to posts. You can also interact from your account on a different server.' /></p>
+ <a href={sso_redirect} data-method='post' className='button button--block button-tertiary'><FormattedMessage id='sign_in_banner.sso_redirect' defaultMessage='Login or Register' /></a>
+ </div>
+ )
+ }
if (registrationsOpen) {
signupButton = (
M app/javascript/flavours/glitch/initial_state.js => app/javascript/flavours/glitch/initial_state.js +2 -0
@@ 82,6 82,7 @@
* @property {boolean} use_blurhash
* @property {boolean=} use_pending_items
* @property {string} version
+ * @property {string} sso_redirect
* @property {boolean} translation_enabled
* @property {string} status_page_url
* @property {boolean} system_emoji_font
@@ 160,6 161,7 @@ export const usePendingItems = getMeta('use_pending_items');
export const version = getMeta('version');
export const languages = initialState?.languages;
export const statusPageUrl = getMeta('status_page_url');
+export const sso_redirect = getMeta('sso_redirect');
// Glitch-soc-specific settings
export const maxChars = (initialState && initialState.max_toot_chars) || 500;