From bc6d55e0dab8e791709a5b4210152dd24ae0b4ea Mon Sep 17 00:00:00 2001 From: "a.ungemah@gmail.com" Date: Wed, 4 Jul 2018 11:50:40 +0500 Subject: [PATCH 1/2] HT1 --- admin/src/components/form/add-user.js | 28 ++++++++++++++++ admin/src/config.js | 6 ++-- admin/src/ducks/persons.js | 48 +++++++++++++++++++++++++++ admin/src/redux/reducer.js | 4 ++- admin/src/routes/auth.js | 14 +++++++- 5 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 admin/src/components/form/add-user.js create mode 100644 admin/src/ducks/persons.js diff --git a/admin/src/components/form/add-user.js b/admin/src/components/form/add-user.js new file mode 100644 index 0000000..13bcb68 --- /dev/null +++ b/admin/src/components/form/add-user.js @@ -0,0 +1,28 @@ +import React, { Component } from 'react' +import { reduxForm, Field } from 'redux-form' + +class AddUserForm extends Component { + render() { + return ( +
+

Add user:

+
+
+ Name: +
+
+ Last name: +
+
+ Email: +
+ +
+
+ ) + } +} + +export default reduxForm({ + form: 'addUser' +})(AddUserForm) diff --git a/admin/src/config.js b/admin/src/config.js index baf47b0..953d541 100644 --- a/admin/src/config.js +++ b/admin/src/config.js @@ -1,15 +1,15 @@ import { initializeApp } from 'firebase/app' import 'firebase/auth' -export const appName = 'adv-react-25-06' +export const appName = 'adv-react-au-0307' const config = { - apiKey: 'AIzaSyDzqwnZ_39QyqhxYZVPjVH8eBww7DUBmVc', + apiKey: 'AIzaSyDj6YDOCSRPFbUGtUwwtyPrA-koT2uKCxg', authDomain: `${appName}.firebaseapp.com`, databaseURL: `https://${appName}.firebaseio.com`, projectId: appName, storageBucket: '', - messagingSenderId: '874599443389' + messagingSenderId: '650330669903' } initializeApp(config) diff --git a/admin/src/ducks/persons.js b/admin/src/ducks/persons.js new file mode 100644 index 0000000..6a8f0a7 --- /dev/null +++ b/admin/src/ducks/persons.js @@ -0,0 +1,48 @@ +import { appName } from '../config' +import { Record } from 'immutable' +import { reset } from 'redux-form' + +/** + * Constants + * */ +export const moduleName = 'persons' +const prefix = `${appName}/${moduleName}` + +export const ADD_USER = `${prefix}/ADD_USER` + +/** + * Reducer + * */ +export const ReducerRecord = Record({ + person: null +}) + +export default function reducer(state = new ReducerRecord(), action) { + const { type, payload } = action + + switch (type) { + case ADD_USER: + return state.set('person', payload.person) + + default: + return state + } +} + +/** + * Selectors + * */ + +/** + * Action Creators + * */ + +export function addUser(firstName, lastName, email) { + return (dispatch) => { + dispatch({ + type: ADD_USER, + payload: { person: { firstName, lastName, email } } + }) + dispatch(reset('addUser')) + } +} diff --git a/admin/src/redux/reducer.js b/admin/src/redux/reducer.js index 78c74cf..3d729ba 100644 --- a/admin/src/redux/reducer.js +++ b/admin/src/redux/reducer.js @@ -1,8 +1,10 @@ import { combineReducers } from 'redux' import { reducer as form } from 'redux-form' import authReducer, { moduleName as authModule } from '../ducks/auth' +import personsReducer, { moduleName as personsModule } from '../ducks/persons' export default combineReducers({ form, - [authModule]: authReducer + [authModule]: authReducer, + [personsModule]: personsReducer }) diff --git a/admin/src/routes/auth.js b/admin/src/routes/auth.js index 9fde0c4..0056995 100644 --- a/admin/src/routes/auth.js +++ b/admin/src/routes/auth.js @@ -3,7 +3,9 @@ import { Route, NavLink } from 'react-router-dom' import { connect } from 'react-redux' import SignInForm from '../components/auth/sign-in' import SignUpForm from '../components/auth/sign-up' +import AddUserForm from '../components/form/add-user' import { signIn, signUp } from '../ducks/auth' +import { addUser } from '../ducks/persons' class AuthRoute extends Component { render() { @@ -14,6 +16,7 @@ class AuthRoute extends Component { + ) } @@ -31,6 +34,11 @@ class AuthRoute extends Component { Sign Up +
+ + Add user + +
) } @@ -39,11 +47,15 @@ class AuthRoute extends Component { signUpForm = () => + addUserForm = () => + handleSignIn = ({ email, password }) => this.props.signIn(email, password) handleSignUp = ({ email, password }) => this.props.signUp(email, password) + handleAddUser = ({ firstName, lastName, email }) => + this.props.addUser(firstName, lastName, email) } export default connect( null, - { signIn, signUp } + { signIn, signUp, addUser } )(AuthRoute) From db320f4d5442fe0cdd23124d491df5df74b204bb Mon Sep 17 00:00:00 2001 From: "a.ungemah@gmail.com" Date: Wed, 4 Jul 2018 11:51:09 +0500 Subject: [PATCH 2/2] HT1