Link private tournament list in navigation bar if the user is signed in

This commit is contained in:
Felix Hamme 2019-04-17 09:59:51 +02:00
parent 0b35c6c84d
commit 0aa1660cd1
1 changed files with 18 additions and 7 deletions

View File

@ -40,11 +40,7 @@ export class TurniereNavigation extends React.Component {
<Betabadge/>
<NavbarToggler onClick={this.toggle} />
<Collapse isOpen={!this.state.collapsed} navbar>
<Nav navbar className="mr-auto">
<Navlink target="/create" text="Turnier erstellen"/>
<Navlink target="/list" text="Öffentliche Turniere"/>
<Navlink target="/faq" text="FAQ"/>
</Nav>
<NavLinks/>
<LoginLogoutButtons/>
</Collapse>
</Navbar>
@ -60,6 +56,18 @@ function Navlink(props) {
);
}
class SmartNavLinks extends React.Component {
render() {
return (<Nav navbar className="mr-auto">
<Navlink target="/create" text="Turnier erstellen"/>
<Navlink target="/list" text="Öffentliche Turniere"/>
{this.props.isSignedIn && <Navlink target="/private" text="Private Turniere"/>}
<Navlink target="/faq" text="FAQ"/>
</Nav>);
}
}
function Betabadge() {
return (<Badge color="danger" className="mr-2">BETA</Badge>);
}
@ -87,12 +95,15 @@ class InvisibleLoginLogoutButtons extends React.Component {
}
}
const mapStateToLoginLogoutButtonProperties = (state) => {
const mapStateToUserinfo = (state) => {
const { isSignedIn, username } = state.userinfo;
return { isSignedIn, username };
};
const LoginLogoutButtons = connect(
mapStateToLoginLogoutButtonProperties
mapStateToUserinfo
)(InvisibleLoginLogoutButtons);
const NavLinks = connect(
mapStateToUserinfo
)(SmartNavLinks);