53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
|
/* @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;
|
||
|
});
|