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

middleware.web.js 1.5KB

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