Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

middleware.native.ts 1.2KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { setVideoMuted } from '../base/media/actions';
  2. import { MEDIA_TYPE, VIDEO_MUTISM_AUTHORITY } from '../base/media/constants';
  3. import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
  4. import { CLIENT_RESIZED } from '../base/responsive-ui/actionTypes';
  5. // eslint-disable-next-line lines-around-comment
  6. // @ts-ignore
  7. import { setLargeVideoDimensions } from '../large-video/actions.any';
  8. import { SET_CAR_MODE } from './actionTypes';
  9. import './middleware.any';
  10. /**
  11. * Middleware which intercepts actions and updates the legacy component.
  12. *
  13. * @param {Store} store - The redux store.
  14. * @returns {Function}
  15. */
  16. MiddlewareRegistry.register(store => next => action => {
  17. const result = next(action);
  18. const { dispatch } = store;
  19. switch (action.type) {
  20. case SET_CAR_MODE:
  21. dispatch(setVideoMuted(action.enabled, MEDIA_TYPE.VIDEO, VIDEO_MUTISM_AUTHORITY.CAR_MODE));
  22. break;
  23. case CLIENT_RESIZED: {
  24. const { clientHeight, clientWidth } = store.getState()['features/base/responsive-ui'];
  25. // On mobile the large video should always fill the screen.
  26. dispatch(setLargeVideoDimensions(clientHeight, clientWidth));
  27. break;
  28. }
  29. }
  30. return result;
  31. });