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.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import {
  2. setPrejoinPageVisibility,
  3. setSkipPrejoinOnReload
  4. } from '../../prejoin';
  5. import { JitsiConferenceErrors } from '../lib-jitsi-meet';
  6. import { MiddlewareRegistry } from '../redux';
  7. import { CONFERENCE_FAILED, CONFERENCE_JOINED, CONFERENCE_JOIN_IN_PROGRESS } from './actionTypes';
  8. import './middleware.any';
  9. MiddlewareRegistry.register(store => next => action => {
  10. const { dispatch, getState } = store;
  11. const { enableForcedReload } = getState()['features/base/config'];
  12. switch (action.type) {
  13. case CONFERENCE_JOIN_IN_PROGRESS: {
  14. dispatch(setPrejoinPageVisibility(false));
  15. break;
  16. }
  17. case CONFERENCE_JOINED: {
  18. if (enableForcedReload) {
  19. dispatch(setSkipPrejoinOnReload(false));
  20. }
  21. break;
  22. }
  23. case CONFERENCE_FAILED: {
  24. const errorName = action.error?.name;
  25. if (enableForcedReload && errorName === JitsiConferenceErrors.CONFERENCE_RESTARTED) {
  26. dispatch(setSkipPrejoinOnReload(true));
  27. }
  28. break;
  29. }
  30. }
  31. return next(action);
  32. });