123456789101112131415161718192021222324252627282930313233343536373839 |
- import { IStore } from '../app/types';
- import { SET_CONFIG } from '../base/config/actionTypes';
- import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
- import { CAPTURE_EVENTS } from '../remote-control/actionTypes';
-
- import { disableKeyboardShortcuts, enableKeyboardShortcuts } from './actions';
-
- MiddlewareRegistry.register((store: IStore) => (next: Function) => (action: any) => {
- const { dispatch } = store;
-
- switch (action.type) {
- case CAPTURE_EVENTS:
- if (action.isCapturingEvents) {
- dispatch(disableKeyboardShortcuts());
- } else {
- dispatch(enableKeyboardShortcuts());
- }
-
- return next(action);
- case SET_CONFIG: {
- const result = next(action);
-
- const state = store.getState();
- const { disableShortcuts } = state['features/base/config'];
-
- if (disableShortcuts !== undefined) {
- if (disableShortcuts) {
- dispatch(disableKeyboardShortcuts());
- } else {
- dispatch(enableKeyboardShortcuts());
- }
- }
-
- return result;
- }
- }
-
- return next(action);
- });
|