From c863c09f9b71f9069fceb0bcdbc8522eb28dc9c4 Mon Sep 17 00:00:00 2001 From: Dusty Phillips Date: Mon, 27 Aug 2018 15:42:14 -0300 Subject: [PATCH] Set up store and react-redux-firebase --- .gitignore | 2 ++ src/redux/reducers.js | 11 +++++++++++ src/redux/store.js | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 src/redux/reducers.js create mode 100644 src/redux/store.js diff --git a/.gitignore b/.gitignore index d30f40e..20ad92c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +firebaseConfig.js diff --git a/src/redux/reducers.js b/src/redux/reducers.js new file mode 100644 index 0000000..7bbc125 --- /dev/null +++ b/src/redux/reducers.js @@ -0,0 +1,11 @@ +import { combineReducers } from 'redux' +import { firebaseReducer } from 'react-redux-firebase' +import { firestoreReducer } from 'redux-firestore' + +export const initialState = {} + + +export const rootReducer = combineReducers({ + firebase: firebaseReducer, + firestore: firestoreReducer, +}) diff --git a/src/redux/store.js b/src/redux/store.js new file mode 100644 index 0000000..7c1d53d --- /dev/null +++ b/src/redux/store.js @@ -0,0 +1,39 @@ +import { createStore, compose } from 'redux' +import { reactReduxFirebase } from 'react-redux-firebase' +import { reduxFirestore } from 'redux-firestore' + + +import firebase from 'firebase/app' +import 'firebase/auth' +import 'firebase/firestore' + +import firebaseConfig from '../firebaseConfig.js' +import { initialState, rootReducer } from './reducers' + +firebase.initializeApp(firebaseConfig) +firebase.firestore().settings({ timestampsInSnapshots: true }) + +const enhancers = [ + reduxFirestore(firebase), + reactReduxFirebase(firebase, { + userProfile: 'users', + useFirestoreForProfile: true, + }), +] + +const reduxDevToolsExtension = window.devToolsExtension +if ( + process.env.NODE_ENV === "development" && + typeof reduxDevToolsExtension === "function" +) { + enhancers.push(reduxDevToolsExtension()) +} + +const composedEnhancers = compose( + ...enhancers +) + +const store = createStore(rootReducer, initialState, composedEnhancers) + + +export default store