12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { OVERWRITE_CONFIG, SET_CONFIG, UPDATE_CONFIG } from '../base/config/actionTypes';
- import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
- import { I_AM_VISITOR_MODE } from '../visitors/actionTypes';
-
- import { SET_TOOLBAR_BUTTONS } from './actionTypes';
- import { setMainToolbarThresholds } from './actions.native';
- import { NATIVE_THRESHOLDS, NATIVE_TOOLBAR_BUTTONS } from './constants';
- import { getToolbarButtons } from './functions.native';
-
-
- /**
- * Middleware which intercepts Toolbox actions to handle changes to the
- * visibility timeout of the Toolbox.
- *
- * @param {Store} store - The redux store.
- * @returns {Function}
- */
-
- MiddlewareRegistry.register(store => next => action => {
- switch (action.type) {
-
- case UPDATE_CONFIG:
- case OVERWRITE_CONFIG:
- case I_AM_VISITOR_MODE:
- case SET_CONFIG: {
- const result = next(action);
- const { dispatch } = store;
- const state = store.getState();
-
- const toolbarButtons = getToolbarButtons(state, NATIVE_TOOLBAR_BUTTONS);
-
- if (action.type !== I_AM_VISITOR_MODE) {
- dispatch(setMainToolbarThresholds(NATIVE_THRESHOLDS));
- }
-
- dispatch({
- type: SET_TOOLBAR_BUTTONS,
- toolbarButtons
- });
-
- return result;
- }
- }
-
- return next(action);
- });
|