| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- /* @flow */
 - 
 - import { MiddlewareRegistry } from '../base/redux';
 - 
 - import {
 -     CLEAR_TOOLBOX_TIMEOUT,
 -     SET_TOOLBOX_TIMEOUT
 - } from './actionTypes';
 - 
 - /**
 -  * Middleware which intercepts Toolbox actions to handle changes to the
 -  * visibility timeout of the Toolbox.
 -  *
 -  * @param {Store} store - Redux store.
 -  * @returns {Function}
 -  */
 - MiddlewareRegistry.register(store => next => action => {
 -     switch (action.type) {
 -     case CLEAR_TOOLBOX_TIMEOUT: {
 -         const { timeoutID } = store.getState()['features/toolbox'];
 - 
 -         clearTimeout(timeoutID);
 -         break;
 -     }
 - 
 -     case SET_TOOLBOX_TIMEOUT: {
 -         const { timeoutID } = store.getState()['features/toolbox'];
 -         const { handler, timeoutMS } = action;
 - 
 -         clearTimeout(timeoutID);
 -         const newTimeoutId = setTimeout(handler, timeoutMS);
 - 
 -         action.timeoutID = newTimeoutId;
 -         break;
 -     }
 -     }
 - 
 -     return next(action);
 - });
 
 
  |