UNPKG

redux-online-status

Version:
65 lines (51 loc) 1.95 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultCreateEventListener = exports.reducer = exports.change = exports.CHANGE = undefined; var _getOnLine = require('./utils/getOnLine'); var _getOnLine2 = _interopRequireDefault(_getOnLine); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CHANGE = exports.CHANGE = '@@online-status/CHANGE'; var change = exports.change = function change(online) { return { type: CHANGE, payload: online }; }; var reducer = exports.reducer = function reducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _getOnLine2.default)(); var _ref = arguments[1]; var type = _ref.type, payload = _ref.payload; if (type === CHANGE) { return payload; } return state; }; var defaultCreateEventListener = exports.defaultCreateEventListener = function defaultCreateEventListener(_ref2) { var dispatch = _ref2.dispatch, getState = _ref2.getState; return function () { var onLine = (0, _getOnLine2.default)(); var _getState = getState(), current = _getState.online; if (current !== onLine) { dispatch(change(onLine)); } }; }; var createEnhancer = function createEnhancer() { var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref3$createEventList = _ref3.createEventListener, createEventListener = _ref3$createEventList === undefined ? defaultCreateEventListener : _ref3$createEventList; return function (createStore) { return function () { var store = createStore.apply(undefined, arguments); if (window) { var listener = createEventListener(store);['online', 'offline'].forEach(function (event) { return window.addEventListener(event, listener); }); } return store; }; }; }; exports.default = createEnhancer;