anew
Version:
React and Redux Framework with additional power.
128 lines (96 loc) • 4.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AppNativeCore = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _reactRedux = require('react-redux');
var _expo = require('expo');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var AppNativeCore = function () {
function AppNativeCore() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
store = _ref.store;
_classCallCheck(this, AppNativeCore);
this.config = {
store: store
};
}
/**
| ------------------------
| Config Methods
| ------------------------
*/
/**
* Assign Global Fallback Store
*
* @param {Object} an instance/object store
*/
_createClass(AppNativeCore, [{
key: 'store',
value: function store(_store) {
this.config.store = _store;
}
/**
| ------------------------
| HOC Methods
| ------------------------
*/
/**
* Connect to anewStore object
*
* @param { Object|Component } Config Connection Configuration
* @return { Component } Connected HOC
*/
}, {
key: 'connect',
value: function connect(Config) {
var _this = this;
var component = Config.component,
mapStateToProps = Config.mapStateToProps,
mapDispatchToProps = Config.mapDispatchToProps,
mergeProps = Config.mergeProps,
options = Config.options;
return (0, _reactRedux.connect)(mapStateToProps ? function (state, props) {
return mapStateToProps(_this.config.store.getState, state, props);
} : null, mapDispatchToProps, mergeProps, options)(component || Config);
}
/**
| ------------------------
| Render Methods
| ------------------------
*/
/**
* Mount Application
*
* @param {String|Function} Navigation DOM ID Selector String | Navigation Stack
* @param {Object} props BrowserRouter Props
*/
}, {
key: 'mount',
value: function mount(Navigation) {
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _ref2$provider = _ref2.provider,
Provider = _ref2$provider === undefined ? _reactRedux.Provider : _ref2$provider,
options = _objectWithoutProperties(_ref2, ['provider']);
var store = this.config.store;
if (__DEV__) {
_expo.KeepAwake.activate();
}
(0, _expo.registerRootComponent)(function () {
return _react2.default.createElement(
Provider,
{ store: store },
_react2.default.createElement(Navigation, null)
);
});
}
}]);
return AppNativeCore;
}();
exports.AppNativeCore = AppNativeCore;
exports.default = new AppNativeCore();