40 lines
990 B
JavaScript
40 lines
990 B
JavaScript
|
/* @flow */
|
||
|
|
||
|
import { CONFERENCE_WILL_JOIN } from '../base/conference';
|
||
|
import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
|
||
|
import { MiddlewareRegistry } from '../base/redux';
|
||
|
|
||
|
import { updateRecordingSessionData } from './actions';
|
||
|
|
||
|
/**
|
||
|
* The redux middleware to handle the recorder updates in a React way.
|
||
|
*
|
||
|
* @param {Store} store - The redux store.
|
||
|
* @returns {Function}
|
||
|
*/
|
||
|
MiddlewareRegistry.register(({ dispatch }) => next => action => {
|
||
|
const result = next(action);
|
||
|
|
||
|
switch (action.type) {
|
||
|
case CONFERENCE_WILL_JOIN: {
|
||
|
const { conference } = action;
|
||
|
|
||
|
conference.on(
|
||
|
JitsiConferenceEvents.RECORDER_STATE_CHANGED,
|
||
|
recorderSession => {
|
||
|
|
||
|
if (recorderSession && recorderSession.getID()) {
|
||
|
dispatch(
|
||
|
updateRecordingSessionData(recorderSession));
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
});
|