From 017262538739e8d32761c87e72ab6d1d30e40a65 Mon Sep 17 00:00:00 2001 From: Felix Hamme Date: Thu, 6 Jun 2019 18:23:58 +0200 Subject: [PATCH] Simplify the default usecase of UserRestrictor by creating RequireLogin and applying it to the create and private pages --- js/components/RequireLogin.js | 31 ++++++++++++++++++++++++ pages/create.js | 45 ++++++++++------------------------- pages/private.js | 40 +++++++++---------------------- 3 files changed, 55 insertions(+), 61 deletions(-) create mode 100644 js/components/RequireLogin.js diff --git a/js/components/RequireLogin.js b/js/components/RequireLogin.js new file mode 100644 index 0000000..6cccf55 --- /dev/null +++ b/js/components/RequireLogin.js @@ -0,0 +1,31 @@ +import React from 'react'; +import {connect} from 'react-redux'; +import Head from 'next/head'; +import {TurniereNavigation} from './Navigation'; +import {Login} from './Login'; +import {Footer} from './Footer'; + +class RequireLogin extends React.Component { + render() { + if (this.props.isSignedIn) { + return this.props.children; + } + const loginHint = this.props.loginMessage === undefined ? + 'Sie müssen angemeldet sein, um diesen Inhalt anzuzeigen!' : this.props.loginMessage; + + return (
+ + Anmeldung + + +
+ +
+
+
); + } +} + +export default connect(state => { + return {isSignedIn: state.userinfo.isSignedIn}; +})(RequireLogin); diff --git a/pages/create.js b/pages/create.js index 97a3755..1e0eb3d 100644 --- a/pages/create.js +++ b/pages/create.js @@ -4,49 +4,30 @@ import {notify} from 'react-notify-toast'; import {connect} from 'react-redux'; import posed from 'react-pose'; -import { - Button, Card, CardBody, Container, CustomInput, Form, FormGroup, Input, Label -} from 'reactstrap'; +import {Button, Card, CardBody, Container, CustomInput, Form, FormGroup, Input, Label} from 'reactstrap'; import {TurniereNavigation} from '../js/components/Navigation'; import {Footer} from '../js/components/Footer'; -import {UserRestrictor, Option} from '../js/components/UserRestrictor'; -import {Login} from '../js/components/Login'; import EditableStringList from '../js/components/EditableStringList'; import {createTournament} from '../js/api'; import '../static/css/everypage.css'; +import RequireLogin from '../js/components/RequireLogin'; class CreatePage extends React.Component { render() { - const {isSignedIn} = this.props; - - return ( -