UNPKG

redux-online-status

Version:
54 lines (44 loc) 1.52 kB
import getOnLine from './utils/getOnLine'; export var CHANGE = '@@online-status/CHANGE'; export var change = function change(online) { return { type: CHANGE, payload: online }; }; export var reducer = function reducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getOnLine(); var _ref = arguments[1]; var type = _ref.type, payload = _ref.payload; if (type === CHANGE) { return payload; } return state; }; export var defaultCreateEventListener = function defaultCreateEventListener(_ref2) { var dispatch = _ref2.dispatch, getState = _ref2.getState; return function () { var onLine = getOnLine(); 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; }; }; }; export default createEnhancer;