From 4faf5316a4ea787ccfb1baa7e7394ec3230c2c6e Mon Sep 17 00:00:00 2001 From: Sergey Martynov Date: Wed, 31 May 2017 18:27:30 +0300 Subject: [PATCH] Allow to use different stores in firebaseConnect It helps to use more than one firebase app by creating separate store for each one, it may be enough to fix #29 --- src/connect.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/connect.js b/src/connect.js index 5600f128b..0c99141a6 100644 --- a/src/connect.js +++ b/src/connect.js @@ -31,7 +31,7 @@ import { getEventsFromInput, createCallable } from './utils' * auth: pathToJS(firebase, 'auth') // pass auth data as this.props.auth * }))(fbWrapped) */ -export default (dataOrFn = []) => WrappedComponent => { +export const createFirebaseConnect = (storeKey = 'store') => (dataOrFn = []) => WrappedComponent => { class FirebaseConnect extends Component { constructor (props, context) { super(props, context) @@ -40,11 +40,11 @@ export default (dataOrFn = []) => WrappedComponent => { } static contextTypes = { - store: PropTypes.object.isRequired + [storeKey]: PropTypes.object.isRequired }; componentWillMount () { - const { firebase, dispatch } = this.context.store + const { firebase, dispatch } = this.context[storeKey] // Allow function to be passed const inputAsFunc = createCallable(dataOrFn) @@ -93,3 +93,5 @@ export default (dataOrFn = []) => WrappedComponent => { return hoistStatics(FirebaseConnect, WrappedComponent) } + +export default createFirebaseConnect()