diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.js
index bbb0ca1c62..1384bebda0 100644
--- a/app/javascript/mastodon/features/ui/components/header.js
+++ b/app/javascript/mastodon/features/ui/components/header.js
@@ -6,6 +6,7 @@ import { registrationsOpen, me } from 'mastodon/initial_state';
import Avatar from 'mastodon/components/avatar';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
+import { openModal } from 'mastodon/actions/modal';
const Account = connect(state => ({
account: state.getIn(['accounts', me]),
@@ -15,7 +16,14 @@ const Account = connect(state => ({
));
-export default @withRouter
+const mapDispatchToProps = (dispatch) => ({
+ openClosedRegistrationsModal() {
+ dispatch(openModal('CLOSED_REGISTRATIONS'));
+ },
+});
+
+export default @connect(null, mapDispatchToProps)
+@withRouter
class Header extends React.PureComponent {
static contextTypes = {
@@ -23,12 +31,13 @@ class Header extends React.PureComponent {
};
static propTypes = {
+ openClosedRegistrationsModal: PropTypes.func,
location: PropTypes.object,
};
render () {
const { signedIn } = this.context.identity;
- const { location } = this.props;
+ const { location, openClosedRegistrationsModal } = this.props;
let content;
@@ -40,10 +49,26 @@ class Header extends React.PureComponent {
>
);
} else {
+ let signupButton;
+
+ if (registrationsOpen) {
+ signupButton = (
+
+
+
+ );
+ } else {
+ signupButton = (
+
+ );
+ }
+
content = (
<>
-
+ {signupButton}
>
);
}