Files
upstream-jitsi-meet/react/features/video-quality/middleware.ts
upstream-mirror 1d2bfcac0c
Some checks failed
Prosody Plugin Tests / test (push) Failing after 10m11s
Close stale issues and PRs / stale (push) Failing after 1s
snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
2026-09-15 15:56:32 +05:00

46 lines
1.4 KiB
TypeScript

import { CONFERENCE_JOINED } from '../base/conference/actionTypes';
import { SET_CONFIG } from '../base/config/actionTypes';
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
import { setPreferredVideoQuality } from './actions';
import logger from './logger';
import './subscriber';
/**
* Implements the middleware of the feature video-quality.
*
* @param {Store} store - The redux store.
* @returns {Function}
*/
MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
const result = next(action);
switch (action.type) {
case CONFERENCE_JOINED: {
if (navigator.product === 'ReactNative') {
const { resolution } = getState()['features/base/config'];
if (typeof resolution !== 'undefined') {
dispatch(setPreferredVideoQuality(Number.parseInt(`${resolution}`, 10)));
logger.info(`Configured preferred receiver video frame height to: ${resolution}`);
}
}
break;
}
case SET_CONFIG: {
const state = getState();
const { videoQuality = {} } = state['features/base/config'];
const { persistedPrefferedVideoQuality } = state['features/video-quality-persistent-storage'];
if (videoQuality.persist && typeof persistedPrefferedVideoQuality !== 'undefined') {
dispatch(setPreferredVideoQuality(persistedPrefferedVideoQuality));
}
break;
}
}
return result;
});