jiti-meet/react/features/billing-counter/middleware.js

37 lines
865 B
JavaScript
Raw Normal View History

import { PARTICIPANT_JOINED } from '../base/participants/actionTypes';
import { MiddlewareRegistry } from '../base/redux';
import { SET_BILLING_ID } from './actionTypes';
import { countEndpoint } from './actions';
import { setBillingId } from './functions';
/**
* The redux middleware for billing counter.
*
* @param {Store} store - The redux store.
* @returns {Function}
*/
MiddlewareRegistry.register(store => next => async action => {
switch (action.type) {
case SET_BILLING_ID: {
setBillingId(action.value);
break;
}
case PARTICIPANT_JOINED: {
const shouldCount = !store.getState()['features/billing-counter'].endpointCounted
&& !action.participant.local;
if (shouldCount) {
store.dispatch(countEndpoint());
}
break;
}
}
return next(action);
});