You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

middleware.web.ts 4.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /* eslint-disable lines-around-comment */
  2. import LoginDialog from '../../authentication/components/web/LoginDialog';
  3. import WaitForOwnerDialog from '../../authentication/components/web/WaitForOwnerDialog';
  4. import ChatPrivacyDialog from '../../chat/components/web/ChatPrivacyDialog';
  5. import DesktopPicker from '../../desktop-picker/components/DesktopPicker';
  6. import DisplayNamePrompt from '../../display-name/components/web/DisplayNamePrompt';
  7. import EmbedMeetingDialog from '../../embed-meeting/components/EmbedMeetingDialog';
  8. // @ts-ignore
  9. import FeedbackDialog from '../../feedback/components/FeedbackDialog.web';
  10. import AddPeopleDialog from '../../invite/components/add-people-dialog/web/AddPeopleDialog';
  11. import PremiumFeatureDialog from '../../jaas/components/web/PremiumFeatureDialog';
  12. import KeyboardShortcutsDialog from '../../keyboard-shortcuts/components/web/KeyboardShortcutsDialog';
  13. // @ts-ignore
  14. import StartLiveStreamDialog from '../../recording/components/LiveStream/web/StartLiveStreamDialog';
  15. // @ts-ignore
  16. import StopLiveStreamDialog from '../../recording/components/LiveStream/web/StopLiveStreamDialog';
  17. // @ts-ignore
  18. import StartRecordingDialog from '../../recording/components/Recording/web/StartRecordingDialog';
  19. // @ts-ignore
  20. import StopRecordingDialog from '../../recording/components/Recording/web/StopRecordingDialog';
  21. // @ts-ignore
  22. import RemoteControlAuthorizationDialog from '../../remote-control/components/RemoteControlAuthorizationDialog';
  23. import SalesforceLinkDialog from '../../salesforce/components/web/SalesforceLinkDialog';
  24. import ShareAudioDialog from '../../screen-share/components/web/ShareAudioDialog';
  25. import ShareScreenWarningDialog from '../../screen-share/components/web/ShareScreenWarningDialog';
  26. import SecurityDialog from '../../security/components/security-dialog/web/SecurityDialog';
  27. import LogoutDialog from '../../settings/components/web/LogoutDialog';
  28. import SharedVideoDialog from '../../shared-video/components/web/SharedVideoDialog';
  29. import SpeakerStats from '../../speaker-stats/components/web/SpeakerStats';
  30. import LanguageSelectorDialog from '../../subtitles/components/LanguageSelectorDialog.web';
  31. import GrantModeratorDialog from '../../video-menu/components/web/GrantModeratorDialog';
  32. import KickRemoteParticipantDialog from '../../video-menu/components/web/KickRemoteParticipantDialog';
  33. import MuteEveryoneDialog from '../../video-menu/components/web/MuteEveryoneDialog';
  34. import MuteEveryonesVideoDialog from '../../video-menu/components/web/MuteEveryonesVideoDialog';
  35. import MuteRemoteParticipantsVideoDialog from '../../video-menu/components/web/MuteRemoteParticipantsVideoDialog';
  36. // @ts-ignore
  37. import VideoQualityDialog from '../../video-quality/components/VideoQualityDialog.web';
  38. import VirtualBackgroundDialog from '../../virtual-background/components/VirtualBackgroundDialog';
  39. import MiddlewareRegistry from '../redux/MiddlewareRegistry';
  40. import { OPEN_DIALOG } from './actionTypes';
  41. // ! IMPORTANT - This whole middleware is only needed for the transition from from @atlaskit dialog to our component.
  42. // ! It should be removed when the transition is over.
  43. const NEW_DIALOG_LIST = [ KeyboardShortcutsDialog, ChatPrivacyDialog, DisplayNamePrompt, EmbedMeetingDialog,
  44. FeedbackDialog, AddPeopleDialog, PremiumFeatureDialog, StartLiveStreamDialog, StopLiveStreamDialog,
  45. StartRecordingDialog, StopRecordingDialog, ShareAudioDialog, ShareScreenWarningDialog, SecurityDialog,
  46. SharedVideoDialog, SpeakerStats, LanguageSelectorDialog, MuteEveryoneDialog, MuteEveryonesVideoDialog,
  47. GrantModeratorDialog, KickRemoteParticipantDialog, MuteRemoteParticipantsVideoDialog, VideoQualityDialog,
  48. VirtualBackgroundDialog, LoginDialog, WaitForOwnerDialog, DesktopPicker, RemoteControlAuthorizationDialog,
  49. LogoutDialog, SalesforceLinkDialog ];
  50. // This function is necessary while the transition from @atlaskit dialog to our component is ongoing.
  51. const isNewDialog = (component: any) => NEW_DIALOG_LIST.some(comp => comp === component);
  52. /**
  53. * Implements the entry point of the middleware of the feature base/media.
  54. *
  55. * @param {IStore} store - The redux store.
  56. * @returns {Function}
  57. */
  58. MiddlewareRegistry.register(() => (next: Function) => (action: any) => {
  59. switch (action.type) {
  60. case OPEN_DIALOG: {
  61. action.isNewDialog = isNewDialog(action.component);
  62. }
  63. }
  64. return next(action);
  65. });