Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

middleware.js 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // @flow
  2. import {
  3. ADD_PREJOIN_AUDIO_TRACK,
  4. ADD_PREJOIN_VIDEO_TRACK,
  5. PREJOIN_START_CONFERENCE
  6. } from './actionTypes';
  7. import { setPrejoinAudioMuted, setPrejoinVideoMuted } from './actions';
  8. import { updateSettings } from '../base/settings';
  9. import { SET_AUDIO_MUTED, SET_VIDEO_MUTED } from '../base/media';
  10. import { MiddlewareRegistry } from '../base/redux';
  11. import { getAllPrejoinConfiguredTracks } from './functions';
  12. declare var APP: Object;
  13. /**
  14. * The redux middleware for {@link PrejoinPage}.
  15. *
  16. * @param {Store} store - The redux store.
  17. * @returns {Function}
  18. */
  19. MiddlewareRegistry.register(store => next => async action => {
  20. switch (action.type) {
  21. case ADD_PREJOIN_AUDIO_TRACK: {
  22. const { value: audioTrack } = action;
  23. if (audioTrack) {
  24. store.dispatch(
  25. updateSettings({
  26. micDeviceId: audioTrack.getDeviceId()
  27. }),
  28. );
  29. }
  30. break;
  31. }
  32. case ADD_PREJOIN_VIDEO_TRACK: {
  33. const { value: videoTrack } = action;
  34. if (videoTrack) {
  35. store.dispatch(
  36. updateSettings({
  37. cameraDeviceId: videoTrack.getDeviceId()
  38. }),
  39. );
  40. }
  41. break;
  42. }
  43. case PREJOIN_START_CONFERENCE: {
  44. const { getState, dispatch } = store;
  45. const state = getState();
  46. const { userSelectedSkipPrejoin } = state['features/prejoin'];
  47. userSelectedSkipPrejoin && dispatch(updateSettings({
  48. userSelectedSkipPrejoin
  49. }));
  50. const tracks = await getAllPrejoinConfiguredTracks(state);
  51. APP.conference.prejoinStart(tracks);
  52. break;
  53. }
  54. case SET_AUDIO_MUTED: {
  55. store.dispatch(setPrejoinAudioMuted(Boolean(action.muted)));
  56. break;
  57. }
  58. case SET_VIDEO_MUTED: {
  59. store.dispatch(setPrejoinVideoMuted(Boolean(action.muted)));
  60. break;
  61. }
  62. }
  63. return next(action);
  64. });