| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- import {
 -     PIN_PARTICIPANT,
 -     getPinnedParticipant,
 -     pinParticipant
 - } from '../base/participants';
 - import { MiddlewareRegistry } from '../base/redux';
 - import { SET_DOCUMENT_EDITING_STATUS, toggleDocument } from '../etherpad';
 - 
 - import { SET_TILE_VIEW } from './actionTypes';
 - import { setTileView } from './actions';
 - 
 - /**
 -  * Middleware which intercepts actions and updates tile view related state.
 -  *
 -  * @param {Store} store - The redux store.
 -  * @returns {Function}
 -  */
 - MiddlewareRegistry.register(store => next => action => {
 -     switch (action.type) {
 -     case PIN_PARTICIPANT: {
 -         const isPinning = Boolean(action.participant.id);
 -         const { tileViewEnabled } = store.getState()['features/video-layout'];
 - 
 -         if (isPinning && tileViewEnabled) {
 -             store.dispatch(setTileView(false));
 -         }
 - 
 -         break;
 -     }
 - 
 -     case SET_DOCUMENT_EDITING_STATUS:
 -         if (action.editing) {
 -             store.dispatch(setTileView(false));
 -         }
 - 
 -         break;
 - 
 -     case SET_TILE_VIEW: {
 -         const state = store.getState();
 - 
 -         if (action.enabled) {
 -             if (getPinnedParticipant(state)) {
 -                 store.dispatch(pinParticipant(null));
 -             }
 - 
 -             if (state['features/etherpad'].editing) {
 -                 store.dispatch(toggleDocument());
 -             }
 -         }
 - 
 -         break;
 -     }
 -     }
 - 
 -     return next(action);
 - });
 
 
  |