From 3785a2890f0a12772be8e3fc8ae18e21f299239f Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 10 May 2022 19:04:29 -0500 Subject: [PATCH] Registrations aren't really open unless accountCreation is supported --- app/soapbox/features/landing_page/index.tsx | 7 ++++--- app/soapbox/features/public_layout/components/header.tsx | 5 +++-- .../features/ui/components/modals/landing-page-modal.tsx | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/soapbox/features/landing_page/index.tsx b/app/soapbox/features/landing_page/index.tsx index 4f53e32df..a3e58c5b5 100644 --- a/app/soapbox/features/landing_page/index.tsx +++ b/app/soapbox/features/landing_page/index.tsx @@ -3,11 +3,12 @@ import { FormattedMessage } from 'react-intl'; import VerificationBadge from 'soapbox/components/verification_badge'; import RegistrationForm from 'soapbox/features/auth_login/components/registration_form'; -import { useAppSelector, useSoapboxConfig } from 'soapbox/hooks'; +import { useAppSelector, useFeatures, useSoapboxConfig } from 'soapbox/hooks'; import { Button, Card, CardBody, Stack, Text } from '../../components/ui'; const LandingPage = () => { + const features = useFeatures(); const soapboxConfig = useSoapboxConfig(); const pepeEnabled = soapboxConfig.getIn(['extensions', 'pepe', 'enabled']) === true; @@ -28,7 +29,7 @@ const LandingPage = () => { @@ -60,7 +61,7 @@ const LandingPage = () => { const renderBody = () => { if (pepeEnabled && pepeOpen) { return renderPepe(); - } else if (instance.registrations) { + } else if (features.accountCreation && instance.registrations) { return renderOpen(); } else { return renderClosed(); diff --git a/app/soapbox/features/public_layout/components/header.tsx b/app/soapbox/features/public_layout/components/header.tsx index 9ddb6eb31..39a98845a 100644 --- a/app/soapbox/features/public_layout/components/header.tsx +++ b/app/soapbox/features/public_layout/components/header.tsx @@ -5,7 +5,7 @@ import { Link, Redirect } from 'react-router-dom'; import { logIn, verifyCredentials } from 'soapbox/actions/auth'; import { fetchInstance } from 'soapbox/actions/instance'; -import { useAppSelector, useSoapboxConfig } from 'soapbox/hooks'; +import { useAppSelector, useFeatures, useSoapboxConfig } from 'soapbox/hooks'; import { openModal } from '../../../actions/modals'; import { Button, Form, HStack, IconButton, Input, Tooltip } from '../../../components/ui'; @@ -31,8 +31,9 @@ const Header = () => { const pepeEnabled = soapboxConfig.getIn(['extensions', 'pepe', 'enabled']) === true; const { logo } = soapboxConfig; + const features = useFeatures(); const instance = useAppSelector((state) => state.instance); - const isOpen = instance.get('registrations', false) === true; + const isOpen = features.accountCreation && instance.registrations; const pepeOpen = useAppSelector(state => state.verification.getIn(['instance', 'registrations'], false) === true); const [isLoading, setLoading] = React.useState(false); diff --git a/app/soapbox/features/ui/components/modals/landing-page-modal.tsx b/app/soapbox/features/ui/components/modals/landing-page-modal.tsx index 10d9f729f..583a1a144 100644 --- a/app/soapbox/features/ui/components/modals/landing-page-modal.tsx +++ b/app/soapbox/features/ui/components/modals/landing-page-modal.tsx @@ -4,7 +4,7 @@ import { defineMessages, useIntl } from 'react-intl'; import { Button } from 'soapbox/components/ui'; import { Modal } from 'soapbox/components/ui'; -import { useAppSelector, useSoapboxConfig } from 'soapbox/hooks'; +import { useAppSelector, useFeatures, useSoapboxConfig } from 'soapbox/hooks'; const messages = defineMessages({ download: { id: 'landing_page_modal.download', defaultMessage: 'Download' }, @@ -25,8 +25,9 @@ const LandingPageModal: React.FC = ({ onClose }) => { const { logo } = soapboxConfig; const instance = useAppSelector((state) => state.instance); + const features = useFeatures(); - const isOpen = instance.get('registrations', false) === true; + const isOpen = features.accountCreation && instance.registrations; const pepeOpen = useAppSelector(state => state.verification.getIn(['instance', 'registrations'], false) === true); return (