Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

middleware.web.js 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 } 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. const { clientHeight, clientWidth } = state['features/base/responsive-ui'];
  25. store.dispatch(
  26. setTileViewDimensions(
  27. gridDimensions,
  28. {
  29. clientHeight,
  30. clientWidth
  31. },
  32. store
  33. )
  34. );
  35. break;
  36. }
  37. case LAYOUTS.HORIZONTAL_FILMSTRIP_VIEW:
  38. store.dispatch(setHorizontalViewDimensions(state['features/base/responsive-ui'].clientHeight));
  39. break;
  40. }
  41. break;
  42. }
  43. case SETTINGS_UPDATED: {
  44. if (typeof action.settings?.localFlipX === 'boolean') {
  45. // TODO: This needs to be removed once the large video is Reactified.
  46. VideoLayout.onLocalFlipXChanged();
  47. }
  48. break;
  49. }
  50. }
  51. return result;
  52. });