@taraai/read-write
Version:
Synchronous NoSQL/Firestore for React
57 lines (45 loc) • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _ReduxFirestoreContext = _interopRequireDefault(require("./ReduxFirestoreContext"));
var _createFirebaseInstance = _interopRequireDefault(require("./createFirebaseInstance"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ReduxFirestoreProvider() {
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
const {
children,
config,
dispatch,
firebase,
createFirestoreInstance,
initializeAuth
} = props;
const extendedFirestoreInstance = _react.default.useMemo(() => {
const extendedFirebaseInstance = firebase._reactReduxFirebaseExtended ? firebase : (0, _createFirebaseInstance.default)(firebase, config, dispatch);
const extendedFirestoreInstance = createFirestoreInstance(firebase, config, dispatch);
if (initializeAuth) {
extendedFirebaseInstance.initializeAuth();
}
return extendedFirestoreInstance;
}, [firebase, config, dispatch, createFirestoreInstance, initializeAuth]);
return _react.default.createElement(_ReduxFirestoreContext.default.Provider, {
value: extendedFirestoreInstance
}, children);
}
ReduxFirestoreProvider.defaultProps = {
initializeAuth: true
};
ReduxFirestoreProvider.propTypes = {
children: _propTypes.default.node,
config: _propTypes.default.object.isRequired,
dispatch: _propTypes.default.func.isRequired,
createFirestoreInstance: _propTypes.default.func.isRequired,
initializeAuth: _propTypes.default.bool,
firebase: _propTypes.default.object.isRequired
};
var _default = ReduxFirestoreProvider;
exports.default = _default;