UNPKG

@randy.tarampi/jsx

Version:

Some common JSX components for www.randytarampi.ca

78 lines (60 loc) 2.51 kB
"use strict"; 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;