Skip to content

Commit

Permalink
created lib
Browse files Browse the repository at this point in the history
  • Loading branch information
guilouro committed Aug 21, 2017
1 parent 7212739 commit 2e8406a
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 2 deletions.
29 changes: 29 additions & 0 deletions lib/container.js
@@ -0,0 +1,29 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactRedux = require('react-redux');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var mapStateToProps = function mapStateToProps(_ref) {
var loadingAll = _ref.loadingAll;
return { loadingAll: loadingAll };
};
var Loading = function Loading(props) {
return !Object.values(props.loadingAll).every(function (item) {
return !item;
}) ? props.children : false;
};

Loading.propTypes = {
children: _propTypes2.default.any
};

exports.default = (0, _reactRedux.connect)(mapStateToProps)(Loading);
24 changes: 24 additions & 0 deletions lib/index.js
@@ -0,0 +1,24 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Loading = exports.loadingAll = exports.globalLoaderMiddleware = undefined;

var _middleware = require('./middleware');

var _middleware2 = _interopRequireDefault(_middleware);

var _reducer = require('./reducer');

var _reducer2 = _interopRequireDefault(_reducer);

var _container = require('./container');

var _container2 = _interopRequireDefault(_container);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.globalLoaderMiddleware = _middleware2.default;
exports.loadingAll = _reducer2.default;
exports.Loading = _container2.default;
25 changes: 25 additions & 0 deletions lib/middleware.js
@@ -0,0 +1,25 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

exports.default = function (store) {
var dispatch = store.dispatch;


return function (next) {
return function (action) {
['_PENDING', '_FULFILLED', '_REJECTED'].forEach(function (item, key) {
if (action.type.endsWith(item)) {
dispatch({
type: '@@loadingAll/' + (!key ? 'STARTED' : 'FINISHED'),
payload: action.type.replace(item, '')
});
}
});

next(action);
};
};
};
25 changes: 25 additions & 0 deletions lib/reducer.js
@@ -0,0 +1,25 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

exports.default = function () {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var action = arguments[1];

switch (action.type) {
case '@@loadingAll/STARTED':
return _extends({}, state, _defineProperty({}, action.payload, true));

case '@@loadingAll/FINISHED':
return _extends({}, state, _defineProperty({}, action.payload, false));

default:
return state;
}
};
4 changes: 2 additions & 2 deletions package.json
@@ -1,10 +1,10 @@
{
"name": "redux-global-loader",
"version": "1.0.1",
"version": "1.0.2",
"description": "A Redux Middleware that show a Loading when wait resolve all promise-middleware's promises",
"main": "lib/index.js",
"scripts": {
"babel": "./node_modules/.bin/babel src -d lib",
"build": "./node_modules/.bin/babel src -d lib",
"test": "NODE_ENV=test ./node_modules/.bin/mocha --require tests/setup.js tests/*.spec.js",
"test:tdd": "npm t -- --watch",
"test:coverage": "NODE_ENV=test ./node_modules/.bin/nyc --reporter=html --reporter=text ./node_modules/.bin/mocha tests/setup.js tests/*.spec.js",
Expand Down

0 comments on commit 2e8406a

Please sign in to comment.