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 (
+
+ )
+ }
+}
+
+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)