diff --git a/app/soapbox/actions/auth.js b/app/soapbox/actions/auth.js index 3fd9578a0..f6f5275ae 100644 --- a/app/soapbox/actions/auth.js +++ b/app/soapbox/actions/auth.js @@ -135,8 +135,10 @@ export function logIn(username, password) { }).catch(error => { if (error.response.data.error === 'mfa_required') { throw error; + } else if(error.response.data.error) { + dispatch(snackbar.error(error.response.data.error)); } else { - dispatch(snackbar.error('Invalid username or password.')); + dispatch(snackbar.error('Wrong username or password')); } throw error; }); @@ -174,7 +176,7 @@ export function register(params) { if (needsConfirmation) { return dispatch(snackbar.info('You must confirm your email.')); } else if (needsApproval) { - return dispatch(snackbar.info('Your account is being reviewed.')); + return dispatch(snackbar.info('Your account is pending review by an admin.')); } else { return dispatch(fetchMe()); } diff --git a/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_form-test.js.snap b/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_form-test.js.snap index e78d07cab..e2c336537 100644 --- a/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_form-test.js.snap +++ b/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_form-test.js.snap @@ -10,24 +10,28 @@ exports[` renders correctly 1`] = ` className="fields-group" >
diff --git a/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_page-test.js.snap b/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_page-test.js.snap index 6ea6b4aed..c6cdc64e3 100644 --- a/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_page-test.js.snap +++ b/app/soapbox/features/auth_login/components/__tests__/__snapshots__/login_page-test.js.snap @@ -13,24 +13,28 @@ exports[` renders correctly on load 1`] = ` className="fields-group" >
diff --git a/app/soapbox/features/auth_login/components/login_form.js b/app/soapbox/features/auth_login/components/login_form.js index bb616a076..d9933f6d0 100644 --- a/app/soapbox/features/auth_login/components/login_form.js +++ b/app/soapbox/features/auth_login/components/login_form.js @@ -20,11 +20,27 @@ class LoginForm extends ImmutablePureComponent {
-
- +
+
-
- +
+

diff --git a/app/soapbox/features/auth_login/components/password_reset.js b/app/soapbox/features/auth_login/components/password_reset.js index 7dc363a2f..f7ca59712 100644 --- a/app/soapbox/features/auth_login/components/password_reset.js +++ b/app/soapbox/features/auth_login/components/password_reset.js @@ -37,6 +37,7 @@ class PasswordReset extends ImmutablePureComponent { name='nickname_or_email' label='Email or username' placeholder='me@example.com' + required />

diff --git a/app/soapbox/features/landing_page/components/registration_form.js b/app/soapbox/features/landing_page/components/registration_form.js index 0d6a9db71..3490e8a50 100644 --- a/app/soapbox/features/landing_page/components/registration_form.js +++ b/app/soapbox/features/landing_page/components/registration_form.js @@ -20,6 +20,7 @@ import { getSettings } from 'soapbox/actions/settings'; const messages = defineMessages({ username: { id: 'registration.fields.username_placeholder', defaultMessage: 'Username' }, + username_hint: { id: 'registration.fields.username_hint', defaultMessage: 'Only letters, numbers, and underscores are allowed.' }, email: { id: 'registration.fields.email_placeholder', defaultMessage: 'E-Mail address' }, password: { id: 'registration.fields.password_placeholder', defaultMessage: 'Password' }, confirm: { id: 'registration.fields.confirm_placeholder', defaultMessage: 'Password (again)' }, @@ -92,11 +93,32 @@ class RegistrationForm extends ImmutablePureComponent { render() { const { instance, intl } = this.props; + const isOpen = instance.get('registrations'); const isLoading = this.state.captchaLoading || this.state.submissionLoading; + if (isOpen === false) { + return ( +
+

+ +

+
+ {instance.get('title')} }} + /> +
+
+ ); + } + return ( -
+

diff --git a/app/soapbox/selectors/index.js b/app/soapbox/selectors/index.js index 30ebcee3f..30d3e971f 100644 --- a/app/soapbox/selectors/index.js +++ b/app/soapbox/selectors/index.js @@ -126,7 +126,7 @@ export const getAlerts = createSelector([getAlertsBase], (base) => { key: item.get('key'), className: `snackbar snackbar--${item.get('severity', 'info')}`, activeClassName: 'snackbar--active', - dismissAfter: 5000, + dismissAfter: 6000, }); }); diff --git a/app/styles/about.scss b/app/styles/about.scss index 6a09753a6..ece0153e2 100644 --- a/app/styles/about.scss +++ b/app/styles/about.scss @@ -443,6 +443,22 @@ $fluid-breakpoint: $maximum-width + 20px; } } + .registrations-closed { + display: flex; + flex-direction: column; + height: 100%; + align-items: center; + justify-content: center; + text-align: center; + font-size: 18px; + + h2 { + font-weight: bold; + font-size: 24px; + margin-bottom: 10px; + } + } + @media (min-width: 767px) and (max-width: 1024px) { padding: 40px 20px 20px;