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.js 1.1KB

12345678910111213141516171819202122232425262728293031
  1. // @flow
  2. import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
  3. import { StateListenerRegistry } from '../base/redux';
  4. import { UPDATE_BREAKOUT_ROOMS } from './actionTypes';
  5. import { moveToRoom } from './actions';
  6. import logger from './logger';
  7. /**
  8. * Registers a change handler for state['features/base/conference'].conference to
  9. * set the event listeners needed for the breakout rooms feature to operate.
  10. */
  11. StateListenerRegistry.register(
  12. state => state['features/base/conference'].conference,
  13. (conference, { dispatch }, previousConference) => {
  14. if (conference && !previousConference) {
  15. conference.on(JitsiConferenceEvents.BREAKOUT_ROOMS_MOVE_TO_ROOM, roomId => {
  16. logger.debug(`Moving to room: ${roomId}`);
  17. dispatch(moveToRoom(roomId));
  18. });
  19. conference.on(JitsiConferenceEvents.BREAKOUT_ROOMS_UPDATED, rooms => {
  20. logger.debug('Room list updated');
  21. dispatch({
  22. type: UPDATE_BREAKOUT_ROOMS,
  23. rooms
  24. });
  25. });
  26. }
  27. });