UNPKG

anew

Version:

React and Redux Framework with additional power.

128 lines (96 loc) 4.21 kB
'use strict'; 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();