| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /* eslint-disable import/order */
- import './middleware.any.js';
-
- import { IStore } from '../../app/types';
-
- // @ts-ignore
- import { NOTIFICATION_TIMEOUT_TYPE, showNotification } from '../../notifications';
- import LocalRecordingManager from '../../recording/components/Recording/LocalRecordingManager.web';
-
- // @ts-ignore
- import StopRecordingDialog from '../../recording/components/Recording/web/StopRecordingDialog';
-
- // @ts-ignore
- import { openDialog } from '../dialog';
-
- // @ts-ignore
- import { MiddlewareRegistry } from '../redux';
-
- import { SET_VIDEO_MUTED } from './actionTypes';
-
- /**
- * Implements the entry point of the middleware of the feature base/media.
- *
- * @param {IStore} store - The redux store.
- * @returns {Function}
- */
- MiddlewareRegistry.register((store: IStore) => (next: Function) => (action: any) => {
- const { dispatch } = store;
-
- switch (action.type) {
- case SET_VIDEO_MUTED: {
- if (LocalRecordingManager.isRecordingLocally() && LocalRecordingManager.selfRecording.on) {
- if (action.muted && LocalRecordingManager.selfRecording.withVideo) {
- dispatch(openDialog(StopRecordingDialog, { localRecordingVideoStop: true }));
-
- return;
- } else if (!action.muted && !LocalRecordingManager.selfRecording.withVideo) {
- dispatch(showNotification({
- titleKey: 'recording.localRecordingNoVideo',
- descriptionKey: 'recording.localRecordingVideoWarning',
- uid: 'recording.localRecordingNoVideo'
- }, NOTIFICATION_TIMEOUT_TYPE.MEDIUM));
- }
- }
- }
- }
-
- return next(action);
- });
|