64 lines
3.7 KiB
TypeScript
64 lines
3.7 KiB
TypeScript
/* eslint-disable lines-around-comment */
|
|
import ChatPrivacyDialog from '../../chat/components/web/ChatPrivacyDialog';
|
|
import DisplayNamePrompt from '../../display-name/components/web/DisplayNamePrompt';
|
|
import EmbedMeetingDialog from '../../embed-meeting/components/EmbedMeetingDialog';
|
|
// @ts-ignore
|
|
import FeedbackDialog from '../../feedback/components/FeedbackDialog.web';
|
|
import AddPeopleDialog from '../../invite/components/add-people-dialog/web/AddPeopleDialog';
|
|
import PremiumFeatureDialog from '../../jaas/components/web/PremiumFeatureDialog';
|
|
import KeyboardShortcutsDialog from '../../keyboard-shortcuts/components/web/KeyboardShortcutsDialog';
|
|
// @ts-ignore
|
|
import StartLiveStreamDialog from '../../recording/components/LiveStream/web/StartLiveStreamDialog';
|
|
// @ts-ignore
|
|
import StopLiveStreamDialog from '../../recording/components/LiveStream/web/StopLiveStreamDialog';
|
|
// @ts-ignore
|
|
import StartRecordingDialog from '../../recording/components/Recording/web/StartRecordingDialog';
|
|
// @ts-ignore
|
|
import StopRecordingDialog from '../../recording/components/Recording/web/StopRecordingDialog';
|
|
import ShareAudioDialog from '../../screen-share/components/ShareAudioDialog';
|
|
import ShareScreenWarningDialog from '../../screen-share/components/ShareScreenWarningDialog';
|
|
import SecurityDialog from '../../security/components/security-dialog/web/SecurityDialog';
|
|
import SharedVideoDialog from '../../shared-video/components/web/SharedVideoDialog';
|
|
import SpeakerStats from '../../speaker-stats/components/web/SpeakerStats';
|
|
import LanguageSelectorDialog from '../../subtitles/components/LanguageSelectorDialog.web';
|
|
import GrantModeratorDialog from '../../video-menu/components/web/GrantModeratorDialog';
|
|
import KickRemoteParticipantDialog from '../../video-menu/components/web/KickRemoteParticipantDialog';
|
|
import MuteEveryoneDialog from '../../video-menu/components/web/MuteEveryoneDialog';
|
|
import MuteEveryonesVideoDialog from '../../video-menu/components/web/MuteEveryonesVideoDialog';
|
|
import MuteRemoteParticipantsVideoDialog from '../../video-menu/components/web/MuteRemoteParticipantsVideoDialog';
|
|
// @ts-ignore
|
|
import VideoQualityDialog from '../../video-quality/components/VideoQualityDialog.web';
|
|
import VirtualBackgroundDialog from '../../virtual-background/components/VirtualBackgroundDialog';
|
|
import MiddlewareRegistry from '../redux/MiddlewareRegistry';
|
|
|
|
import { OPEN_DIALOG } from './actionTypes';
|
|
|
|
// ! IMPORTANT - This whole middleware is only needed for the transition from from @atlaskit dialog to our component.
|
|
// ! It should be removed when the transition is over.
|
|
|
|
const NEW_DIALOG_LIST = [ KeyboardShortcutsDialog, ChatPrivacyDialog, DisplayNamePrompt, EmbedMeetingDialog,
|
|
FeedbackDialog, AddPeopleDialog, PremiumFeatureDialog, StartLiveStreamDialog, StopLiveStreamDialog,
|
|
StartRecordingDialog, StopRecordingDialog, ShareAudioDialog, ShareScreenWarningDialog, SecurityDialog,
|
|
SharedVideoDialog, SpeakerStats, LanguageSelectorDialog, MuteEveryoneDialog, MuteEveryonesVideoDialog,
|
|
GrantModeratorDialog, KickRemoteParticipantDialog, MuteRemoteParticipantsVideoDialog, VideoQualityDialog,
|
|
VirtualBackgroundDialog ];
|
|
|
|
// This function is necessary while the transition from @atlaskit dialog to our component is ongoing.
|
|
const isNewDialog = (component: any) => NEW_DIALOG_LIST.some(comp => comp === component);
|
|
|
|
/**
|
|
* Implements the entry point of the middleware of the feature base/media.
|
|
*
|
|
* @param {IStore} store - The redux store.
|
|
* @returns {Function}
|
|
*/
|
|
MiddlewareRegistry.register(() => (next: Function) => (action: any) => {
|
|
switch (action.type) {
|
|
case OPEN_DIALOG: {
|
|
action.isNewDialog = isNewDialog(action.component);
|
|
}
|
|
}
|
|
|
|
return next(action);
|
|
});
|