diff --git a/app/soapbox/__fixtures__/intlMessages.json b/app/soapbox/__fixtures__/intlMessages.json index a8217149e..d46a8934c 100644 --- a/app/soapbox/__fixtures__/intlMessages.json +++ b/app/soapbox/__fixtures__/intlMessages.json @@ -834,6 +834,7 @@ "registration.lead": "With an account on {instance} you\"ll be able to follow people on any server in the fediverse.", "registration.sign_up": "Sign up", "registration.tos": "Terms of Service", + "registration.reason": "Reason for Joining", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/soapbox/actions/auth.js b/app/soapbox/actions/auth.js index c241b801f..a8d6d5f0f 100644 --- a/app/soapbox/actions/auth.js +++ b/app/soapbox/actions/auth.js @@ -133,15 +133,20 @@ export function logOut() { export function register(params) { return (dispatch, getState) => { const needsConfirmation = getState().getIn(['instance', 'pleroma', 'metadata', 'account_activation_required']); + const needsApproval = getState().getIn(['instance', 'approval_required']); dispatch({ type: AUTH_REGISTER_REQUEST }); return dispatch(createAppAndToken()).then(() => { return api(getState, 'app').post('/api/v1/accounts', params); }).then(response => { dispatch({ type: AUTH_REGISTER_SUCCESS, token: response.data }); dispatch(authLoggedIn(response.data)); - return needsConfirmation - ? dispatch(showAlert('', 'Check your email for further instructions.')) - : dispatch(fetchMe()); + if (needsConfirmation) { + return dispatch(showAlert('', 'Check your email for further instructions.')); + } else if (needsApproval) { + return dispatch(showAlert('', 'Your account has been submitted for approval.')); + } else { + return dispatch(fetchMe()); + } }).catch(error => { dispatch({ type: AUTH_REGISTER_FAIL, error }); throw error; diff --git a/app/soapbox/features/forms/index.js b/app/soapbox/features/forms/index.js index 75feac6d4..471a173f8 100644 --- a/app/soapbox/features/forms/index.js +++ b/app/soapbox/features/forms/index.js @@ -68,6 +68,17 @@ LabelInput.propTypes = { dispatch: PropTypes.func, }; +export const LabelTextarea = ({ label, dispatch, ...props }) => ( + +