選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

middleware.web.ts 3.0KB

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