Auth. guard now only renders child if authenticated.

This commit is contained in:
Harrison Deng 2022-04-07 15:37:45 -05:00
parent 525c2b6d5a
commit 92289c87b3
4 changed files with 63 additions and 60 deletions

View File

@ -23,9 +23,13 @@ export default class AuthenticationGuard extends React.Component {
} }
render() { render() {
if (this.context.user) {
return this.props.children;
} else {
return null; return null;
} }
} }
}
AuthenticationGuard.defaultProps = { AuthenticationGuard.defaultProps = {
accessLevel: 0 accessLevel: 0
@ -33,4 +37,5 @@ AuthenticationGuard.defaultProps = {
AuthenticationGuard.propTypes = { AuthenticationGuard.propTypes = {
accessLevel: propTypes.number, accessLevel: propTypes.number,
children: propTypes.any
}; };

View File

@ -11,7 +11,7 @@ export default class SportInfoCard extends React.Component {
<Card style={{ width: "20rem" }}> <Card style={{ width: "20rem" }}>
<Card.Body> <Card.Body>
<Card.Title>{this.props.sport.name}</Card.Title> <Card.Title>{this.props.sport.name}</Card.Title>
<Card.Subtitle className="mb-2 text-muted">{this.props.sport.minPlayers.toString()}</Card.Subtitle> <Card.Subtitle className="mb-2 text-muted">Requires a minimum of {this.props.sport.minPlayers.toString()} players.</Card.Subtitle>
<Card.Text> <Card.Text>
{this.props.sport.description} {this.props.sport.description}
</Card.Text> </Card.Text>

View File

@ -41,8 +41,8 @@ export default class Dashboard extends React.Component {
render() { render() {
return ( return (
<AuthenticationGuard>
<div className="page-root"> <div className="page-root">
<AuthenticationGuard />
<React.Fragment> <React.Fragment>
<h1></h1> <h1></h1>
<InputGroup className="w-50"> <InputGroup className="w-50">
@ -63,10 +63,9 @@ export default class Dashboard extends React.Component {
<h2>Available Sports</h2> <h2>Available Sports</h2>
<SportInfoCardDisplay recommendedsports={this.state.displayedSports} /> <SportInfoCardDisplay recommendedsports={this.state.displayedSports} />
</div> </div>
</React.Fragment> </React.Fragment>
</div> </div>
</AuthenticationGuard>
); );
} }
} }

View File

@ -177,9 +177,8 @@ export default class Admin extends React.Component {
render() { render() {
return ( return (
<div className="page-root"> <div className="page-root">
<AuthenticationGuard accessLevel={3} /> <AuthenticationGuard accessLevel={3}>
<React.Fragment> <React.Fragment>
<div className='center'> <div className='center'>
<h1 id='title'>Administration</h1> <h1 id='title'>Administration</h1>
<Button onClick={() => { <Button onClick={() => {
@ -207,8 +206,8 @@ export default class Admin extends React.Component {
{/* {this.matchUserTableData()} */} {/* {this.matchUserTableData()} */}
</tbody> </tbody>
</Table> </Table>
</React.Fragment> </React.Fragment>
</AuthenticationGuard >
</div> </div>
); );
} }