@randy.tarampi/jsx
Version:
Some common JSX components for www.randytarampi.ca
78 lines (60 loc) • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.uiMiddleware = void 0;
var _immutable = require("connected-react-router/immutable");
var _clearError = _interopRequireDefault(require("../actions/error/clearError"));
var _routing = require("../actions/routing");
var _selectors = _interopRequireDefault(require("../data/selectors"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var getSwipeableTabs = function getSwipeableTabs() {
var swipeableTabsElement = document.getElementsByClassName("nav-tabs__swipeable")[0];
return swipeableTabsElement && typeof window.M !== "undefined" && window.M && window.M.Tabs.getInstance(swipeableTabsElement);
};
var getSwipeableTabsExpectedTabIndex = function getSwipeableTabsExpectedTabIndex(state, action) {
var location = action.payload.location || action.payload;
return _selectors["default"].getIndexForRoute(state, location.pathname);
};
var getSwipeableTabsExpectedTabId = function getSwipeableTabsExpectedTabId(swipeableTabs, store, action) {
return swipeableTabs.$tabLinks[getSwipeableTabsExpectedTabIndex(store, action)].hash.slice(1);
};
var setSwipeableTabsIndex = function setSwipeableTabsIndex(swipeableTabs, store, action) {
var state = store.getState();
if (swipeableTabs.index !== getSwipeableTabsExpectedTabIndex(state, action)) {
swipeableTabs.select(getSwipeableTabsExpectedTabId(swipeableTabs, state, action));
}
};
var uiMiddleware = function uiMiddleware(store) {
return function (next) {
return function (action) {
switch (action.type) {
case _immutable.LOCATION_CHANGE:
{
var swipeableTabs = getSwipeableTabs();
if (swipeableTabs) {
setSwipeableTabsIndex(swipeableTabs, store, action);
} else {
setTimeout(function () {
var swipeableTabs = getSwipeableTabs();
if (swipeableTabs) {
setSwipeableTabsIndex(swipeableTabs, store, action);
}
}, 60);
}
break;
}
case _routing.SWIPEABLE_CHANGE_INDEX:
case _routing.SWIPEABLE_TAB_CHANGE_INDEX:
{
store.dispatch((0, _clearError["default"])());
break;
}
}
next(action);
};
};
};
exports.uiMiddleware = uiMiddleware;
var _default = uiMiddleware;
exports["default"] = _default;