1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { getAppProp } from '../../base/app/functions';
- import {
- CONFERENCE_JOINED,
- CONFERENCE_LEFT,
- CONFERENCE_WILL_JOIN
- } from '../../base/conference/actionTypes';
- import { PARTICIPANT_JOINED } from '../../base/participants/actionTypes';
- import MiddlewareRegistry from '../../base/redux/MiddlewareRegistry';
- import { READY_TO_CLOSE } from '../external-api/actionTypes';
- import { participantToParticipantInfo } from '../external-api/functions';
-
- import { isExternalAPIAvailable } from './functions';
-
- const externalAPIEnabled = isExternalAPIAvailable();
-
- /**
- * Check if native modules are being used or not. If not then the init of middleware doesn't happen.
- */
- !externalAPIEnabled && MiddlewareRegistry.register(store => next => action => {
- const result = next(action);
- const { type } = action;
- const rnSdkHandlers = getAppProp(store, 'rnSdkHandlers');
-
- switch (type) {
- case READY_TO_CLOSE:
- rnSdkHandlers.onReadyToClose && rnSdkHandlers.onReadyToClose();
- break;
- case CONFERENCE_JOINED:
- rnSdkHandlers.onConferenceJoined && rnSdkHandlers.onConferenceJoined();
- break;
- case CONFERENCE_WILL_JOIN:
- rnSdkHandlers.onConferenceWillJoin && rnSdkHandlers.onConferenceWillJoin();
- break;
- case CONFERENCE_LEFT:
- // Props are torn down at this point, perhaps need to leave this one out
- break;
- case PARTICIPANT_JOINED: {
- const { participant } = action;
- const participantInfo = participantToParticipantInfo(participant);
-
- rnSdkHandlers.onParticipantJoined && rnSdkHandlers.onParticipantJoined(participantInfo);
- break;
- }
- }
-
-
- return result;
- }
- );
|