From 83b46730e3ada577ef8cbdd125b4361ff83ee135 Mon Sep 17 00:00:00 2001 From: mtsymlov Date: Sat, 9 Dec 2017 11:12:01 +0300 Subject: [PATCH 1/2] HT1.1 / HT1.2 --- admin-panel/package.json | 2 +- .../src/components/people/AddPeopleForm.js | 30 +++++++++++++++++++ admin-panel/src/components/people/People.js | 14 +++++++++ admin-panel/src/components/routes/Admin.js | 5 ++++ admin-panel/src/config.js | 8 ++--- 5 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 admin-panel/src/components/people/AddPeopleForm.js create mode 100644 admin-panel/src/components/people/People.js diff --git a/admin-panel/package.json b/admin-panel/package.json index 5fbeba9..dad3e1d 100644 --- a/admin-panel/package.json +++ b/admin-panel/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "email-validator": "^1.1.1", - "firebase": "^4.7.0", + "firebase": "^4.8.0", "history": "^4.7.2", "immutable": "^3.8.2", "logger": "^0.0.1", diff --git a/admin-panel/src/components/people/AddPeopleForm.js b/admin-panel/src/components/people/AddPeopleForm.js new file mode 100644 index 0000000..8577b34 --- /dev/null +++ b/admin-panel/src/components/people/AddPeopleForm.js @@ -0,0 +1,30 @@ +import React, { Component } from 'react'; +import {reduxForm, Field} from 'redux-form' + +class AddPeopleForm extends Component { + render() { + return ( +
+

Add people

+
+
+ FirstName: +
+
+ LastName: +
+
+ Email: +
+
+ +
+
+
+ ); + } +} + +export default reduxForm({ + form: 'addPeopleForm' +})(AddPeopleForm); diff --git a/admin-panel/src/components/people/People.js b/admin-panel/src/components/people/People.js new file mode 100644 index 0000000..67e6b20 --- /dev/null +++ b/admin-panel/src/components/people/People.js @@ -0,0 +1,14 @@ +import React, { Component } from 'react'; +import AddPeopleForm from './AddPeopleForm'; + +class People extends Component { + render() { + return ( +
+ +
+ ); + } +} + +export default People; diff --git a/admin-panel/src/components/routes/Admin.js b/admin-panel/src/components/routes/Admin.js index 952248e..422c2ae 100644 --- a/admin-panel/src/components/routes/Admin.js +++ b/admin-panel/src/components/routes/Admin.js @@ -1,4 +1,7 @@ import React, { Component } from 'react' +import {NavLink} from 'react-router-dom'; +import ProtectedRoute from '../common/ProtectedRoute'; +import People from '../people/People'; class Admin extends Component { static propTypes = { @@ -9,6 +12,8 @@ class Admin extends Component { return (

Admin Page

+
  • Add People
  • +
    ) } diff --git a/admin-panel/src/config.js b/admin-panel/src/config.js index 65bba00..0a4a3e4 100644 --- a/admin-panel/src/config.js +++ b/admin-panel/src/config.js @@ -1,14 +1,14 @@ import firebase from 'firebase' -export const appName = 'advreact-04-12' +export const appName = 'advreact0412' const config = { - apiKey: "AIzaSyCmDWlgYIhtEr1pWjgKYds3iXKWBl9wbjE", + apiKey: "AIzaSyCFY57-ViC6JCloWtC_2w5cIUIGcPiwhG0", authDomain: `${appName}.firebaseapp.com`, databaseURL: `https://${appName}.firebaseio.com`, - projectId: appName, + projectId: "advreact0412", storageBucket: "", - messagingSenderId: "95255462276" + messagingSenderId: "513427030560" } firebase.initializeApp(config) \ No newline at end of file From b5b5dc2d052809237134e433f7fde5fe02f4b595 Mon Sep 17 00:00:00 2001 From: mtsymlov Date: Sun, 10 Dec 2017 20:14:17 +0300 Subject: [PATCH 2/2] HT1.3 --- admin-panel/src/components/auth/SignInForm.js | 22 +++++++++++++--- admin-panel/src/components/common/Loader.js | 13 ++++++++++ .../src/components/routes/auth/index.js | 26 ++++++++++++++----- 3 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 admin-panel/src/components/common/Loader.js diff --git a/admin-panel/src/components/auth/SignInForm.js b/admin-panel/src/components/auth/SignInForm.js index 3033ef6..19d2487 100644 --- a/admin-panel/src/components/auth/SignInForm.js +++ b/admin-panel/src/components/auth/SignInForm.js @@ -1,6 +1,9 @@ import React, { Component } from 'react' import {reduxForm, Field} from 'redux-form' +import validator from 'email-validator' +import ErrorField from '../common/ErrorField' + class SignInForm extends Component { static propTypes = { @@ -12,10 +15,10 @@ class SignInForm extends Component {

    Sign In

    - email: + email:
    - password: + password:
    @@ -25,6 +28,19 @@ class SignInForm extends Component { } } +const validate = ({ email, password }) => { + const errors = {} + + if (!email) errors.email = 'email is a required field' + if (email && !validator.validate(email)) errors.email = 'incorrect email format' + + if (!password) errors.password = 'password is a required field' + if (password && password.length < 8) errors.password = 'password is to short' + + return errors +} + export default reduxForm({ - form: 'auth' + form: 'auth', + validate })(SignInForm) \ No newline at end of file diff --git a/admin-panel/src/components/common/Loader.js b/admin-panel/src/components/common/Loader.js new file mode 100644 index 0000000..2ecdbe2 --- /dev/null +++ b/admin-panel/src/components/common/Loader.js @@ -0,0 +1,13 @@ +import React, {Component} from 'react'; + +class Loader extends Component { + render() { + return ( +
    +

    Loading...

    +
    + ); + } +} + +export default Loader; \ No newline at end of file diff --git a/admin-panel/src/components/routes/auth/index.js b/admin-panel/src/components/routes/auth/index.js index 91c9bab..b1b0905 100644 --- a/admin-panel/src/components/routes/auth/index.js +++ b/admin-panel/src/components/routes/auth/index.js @@ -4,6 +4,7 @@ import {connect} from 'react-redux' import {signIn, signUp} from '../../../ducks/auth' import SignInForm from '../../auth/SignInForm' import SignUpForm from '../../auth/SignUpForm' +import Loader from '../../common/Loader' class Auth extends Component { static propTypes = { @@ -14,13 +15,22 @@ class Auth extends Component { return (

    Auth page

    -
      -
    • Sign In
    • -
    • Sign Up
    • -
    + {this.renderBody()} +
    + ) + } + + renderBody = () => { + const {auth} = this.props + if (this.props.auth.loading) return ; + + return ( +
      +
    • Sign In
    • +
    • Sign Up
    • } /> } /> - +
    ) } @@ -29,4 +39,8 @@ class Auth extends Component { } -export default connect(null, { signIn, signUp })(Auth) \ No newline at end of file +export default connect( + state => ({ + auth: state.auth + }), + { signIn, signUp })(Auth) \ No newline at end of file