diff --git a/README.md b/README.md index 5f4b492..aaca383 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,16 @@ export function* fetchData() { } ``` +## Usage with `immutable-js` + +You can change component import line if your top level redux store object is `immutable`. + +```jsx +import { ImmutableLoadingBar as LoadingBar } from 'react-redux-loading-bar' + +// Use LoadingBar component as usual +``` + ## Usage with jQuery Ajax Requests If you happen to use jQuery for Ajax requests, you can dispatch `SHOW`/`HIDE` actions on `ajaxStart`/`ajaxStop` global events: diff --git a/build/immutable.js b/build/immutable.js new file mode 100644 index 0000000..b009af4 --- /dev/null +++ b/build/immutable.js @@ -0,0 +1,17 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _reactRedux = require('react-redux'); + +var _loading_bar = require('./loading_bar'); + +var mapImmutableStateToProps = function mapImmutableStateToProps(state) { + return { + loading: state.get('loadingBar') + }; +}; + +exports.default = (0, _reactRedux.connect)(mapImmutableStateToProps)(_loading_bar.LoadingBar); \ No newline at end of file diff --git a/build/index.js b/build/index.js index 75f7caa..7548b82 100644 --- a/build/index.js +++ b/build/index.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.LoadingBar = exports.hideLoading = exports.showLoading = exports.loadingBarReducer = exports.loadingBarMiddleware = undefined; +exports.ImmutableLoadingBar = exports.LoadingBar = exports.hideLoading = exports.showLoading = exports.loadingBarReducer = exports.loadingBarMiddleware = undefined; var _loading_bar = require('./loading_bar'); @@ -15,6 +15,10 @@ var _loading_bar_middleware2 = _interopRequireDefault(_loading_bar_middleware); var _loading_bar_ducks = require('./loading_bar_ducks'); +var _immutable = require('./immutable'); + +var _immutable2 = _interopRequireDefault(_immutable); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.loadingBarMiddleware = _loading_bar_middleware2.default; @@ -22,4 +26,5 @@ exports.loadingBarReducer = _loading_bar_ducks.loadingBarReducer; exports.showLoading = _loading_bar_ducks.showLoading; exports.hideLoading = _loading_bar_ducks.hideLoading; exports.LoadingBar = _loading_bar.LoadingBar; +exports.ImmutableLoadingBar = _immutable2.default; exports.default = _loading_bar2.default; \ No newline at end of file diff --git a/src/immutable.js b/src/immutable.js new file mode 100644 index 0000000..33ff957 --- /dev/null +++ b/src/immutable.js @@ -0,0 +1,8 @@ +import { connect } from 'react-redux' +import { LoadingBar } from './loading_bar' + +const mapImmutableStateToProps = (state) => ({ + loading: state.get('loadingBar'), +}) + +export default connect(mapImmutableStateToProps)(LoadingBar) diff --git a/src/index.js b/src/index.js index 78f1197..0fb1bf7 100644 --- a/src/index.js +++ b/src/index.js @@ -5,6 +5,7 @@ import { showLoading, hideLoading, } from './loading_bar_ducks' +import ImmutableLoadingBar from './immutable' export { loadingBarMiddleware, @@ -12,5 +13,6 @@ export { showLoading, hideLoading, LoadingBar, + ImmutableLoadingBar, } export default LoadingBarContainer