12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /* @flow */
-
- import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app';
- import { CONFERENCE_JOINED } from '../base/conference';
- import { i18next } from '../base/i18n';
- import { MiddlewareRegistry } from '../base/redux';
- import { showNotification } from '../notifications';
-
- import { recordingController } from './controller';
- import { signalLocalRecordingEngagement } from './actions';
-
- MiddlewareRegistry.register(({ getState, dispatch }) => next => action => {
- const result = next(action);
-
- switch (action.type) {
- case CONFERENCE_JOINED: {
- // the Conference object is ready
- const { conference } = getState()['features/base/conference'];
-
- recordingController.registerEvents(conference);
- break;
- }
- case APP_WILL_MOUNT:
- // realize the delegates on recordingController,
- // providing UI reactions.
- recordingController.onStateChanged = function(state) {
- dispatch(signalLocalRecordingEngagement(state));
- };
-
- recordingController.onWarning = function(message) {
- dispatch(showNotification({
- title: i18next.t('localRecording.localRecording'),
- description: message
- }, 10000));
- };
-
- recordingController.onNotify = function(message) {
- dispatch(showNotification({
- title: i18next.t('localRecording.localRecording'),
- description: message
- }, 10000));
- };
- break;
- case APP_WILL_UNMOUNT:
- recordingController.onStateChanged = null;
- recordingController.onNotify = null;
- recordingController.onWarning = null;
- break;
- }
-
- return result;
- });
|