You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

middleware.web.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // @flow
  2. import UIEvents from '../../../../service/UI/UIEvents';
  3. import { setPrejoinPageVisibility, setSkipPrejoinOnReload } from '../../prejoin';
  4. import { JitsiConferenceErrors } from '../lib-jitsi-meet';
  5. import { MiddlewareRegistry } from '../redux';
  6. import { TOGGLE_SCREENSHARING } from '../tracks/actionTypes';
  7. import { CONFERENCE_FAILED, CONFERENCE_JOINED } from './actionTypes';
  8. import './middleware.any';
  9. declare var APP: Object;
  10. MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
  11. const { enableForcedReload } = getState()['features/base/config'];
  12. switch (action.type) {
  13. case CONFERENCE_JOINED: {
  14. if (enableForcedReload) {
  15. dispatch(setPrejoinPageVisibility(false));
  16. dispatch(setSkipPrejoinOnReload(false));
  17. }
  18. break;
  19. }
  20. case CONFERENCE_FAILED: {
  21. enableForcedReload
  22. && action.error?.name === JitsiConferenceErrors.CONFERENCE_RESTARTED
  23. && dispatch(setSkipPrejoinOnReload(true));
  24. break;
  25. }
  26. case TOGGLE_SCREENSHARING: {
  27. if (typeof APP === 'object') {
  28. APP.UI.emitEvent(UIEvents.TOGGLE_SCREENSHARING, action.audioOnly);
  29. }
  30. break;
  31. }
  32. }
  33. return next(action);
  34. });