您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

middleware.web.js 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // @flow
  2. import VideoLayout from '../../../modules/UI/videolayout/VideoLayout';
  3. import { PARTICIPANT_JOINED, PARTICIPANT_LEFT } from '../base/participants';
  4. import { MiddlewareRegistry } from '../base/redux';
  5. import { CLIENT_RESIZED } from '../base/responsive-ui';
  6. import { SETTINGS_UPDATED } from '../base/settings';
  7. import {
  8. getCurrentLayout,
  9. LAYOUTS
  10. } from '../video-layout';
  11. import {
  12. setHorizontalViewDimensions,
  13. setTileViewDimensions,
  14. setVerticalViewDimensions
  15. } from './actions';
  16. import { updateRemoteParticipants, updateRemoteParticipantsOnLeave } from './functions';
  17. import './subscriber';
  18. /**
  19. * The middleware of the feature Filmstrip.
  20. */
  21. MiddlewareRegistry.register(store => next => action => {
  22. const result = next(action);
  23. switch (action.type) {
  24. case CLIENT_RESIZED: {
  25. const state = store.getState();
  26. const layout = getCurrentLayout(state);
  27. switch (layout) {
  28. case LAYOUTS.TILE_VIEW: {
  29. const { gridDimensions } = state['features/filmstrip'].tileViewDimensions;
  30. store.dispatch(setTileViewDimensions(gridDimensions));
  31. break;
  32. }
  33. case LAYOUTS.HORIZONTAL_FILMSTRIP_VIEW:
  34. store.dispatch(setHorizontalViewDimensions());
  35. break;
  36. case LAYOUTS.VERTICAL_FILMSTRIP_VIEW:
  37. store.dispatch(setVerticalViewDimensions());
  38. break;
  39. }
  40. break;
  41. }
  42. case PARTICIPANT_JOINED: {
  43. updateRemoteParticipants(store, action.participant?.id);
  44. break;
  45. }
  46. case PARTICIPANT_LEFT: {
  47. updateRemoteParticipantsOnLeave(store, action.participant?.id);
  48. break;
  49. }
  50. case SETTINGS_UPDATED: {
  51. if (typeof action.settings?.localFlipX === 'boolean') {
  52. // TODO: This needs to be removed once the large video is Reactified.
  53. VideoLayout.onLocalFlipXChanged();
  54. }
  55. break;
  56. }
  57. }
  58. return result;
  59. });