33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
// @flow
|
|
|
|
import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
|
|
import { StateListenerRegistry } from '../base/redux';
|
|
|
|
import { UPDATE_BREAKOUT_ROOMS } from './actionTypes';
|
|
import { moveToRoom } from './actions';
|
|
import logger from './logger';
|
|
|
|
/**
|
|
* Registers a change handler for state['features/base/conference'].conference to
|
|
* set the event listeners needed for the breakout rooms feature to operate.
|
|
*/
|
|
StateListenerRegistry.register(
|
|
state => state['features/base/conference'].conference,
|
|
(conference, { dispatch }, previousConference) => {
|
|
if (conference && !previousConference) {
|
|
conference.on(JitsiConferenceEvents.BREAKOUT_ROOMS_MOVE_TO_ROOM, roomId => {
|
|
logger.debug(`Moving to room: ${roomId}`);
|
|
dispatch(moveToRoom(roomId));
|
|
});
|
|
|
|
conference.on(JitsiConferenceEvents.BREAKOUT_ROOMS_UPDATED, ({ rooms, roomCounter }) => {
|
|
logger.debug('Room list updated');
|
|
dispatch({
|
|
type: UPDATE_BREAKOUT_ROOMS,
|
|
rooms,
|
|
roomCounter
|
|
});
|
|
});
|
|
}
|
|
});
|