2022-09-01 11:00:49 +00:00
|
|
|
import PersistenceRegistry from '../base/redux/PersistenceRegistry';
|
|
|
|
import ReducerRegistry from '../base/redux/ReducerRegistry';
|
2021-02-18 15:52:47 +00:00
|
|
|
|
|
|
|
import { BACKGROUND_ENABLED, SET_VIRTUAL_BACKGROUND } from './actionTypes';
|
|
|
|
|
2021-03-30 21:27:44 +00:00
|
|
|
const STORE_NAME = 'features/virtual-background';
|
|
|
|
|
2022-09-01 11:00:49 +00:00
|
|
|
export interface IVirtualBackground {
|
|
|
|
backgroundEffectEnabled?: boolean;
|
|
|
|
backgroundType?: string;
|
|
|
|
blurValue?: number;
|
|
|
|
selectedThumbnail?: string;
|
2022-10-04 10:52:09 +00:00
|
|
|
virtualSource?: { videoType: string; };
|
2022-09-01 11:00:49 +00:00
|
|
|
}
|
|
|
|
|
2021-02-18 15:52:47 +00:00
|
|
|
/**
|
|
|
|
* Reduces redux actions which activate/deactivate virtual background image, or
|
|
|
|
* indicate if the virtual image background is activated/deactivated. The
|
|
|
|
* backgroundEffectEnabled flag indicate if virtual background effect is activated.
|
|
|
|
*
|
|
|
|
* @param {State} state - The current redux state.
|
|
|
|
* @param {Action} action - The redux action to reduce.
|
|
|
|
* @param {string} action.type - The type of the redux action to reduce..
|
|
|
|
* @returns {State} The next redux state that is the result of reducing the
|
|
|
|
* specified action.
|
|
|
|
*/
|
2022-09-05 09:05:07 +00:00
|
|
|
ReducerRegistry.register<IVirtualBackground>(STORE_NAME, (state = {}, action): IVirtualBackground => {
|
2021-04-09 14:25:26 +00:00
|
|
|
const { virtualSource, backgroundEffectEnabled, blurValue, backgroundType, selectedThumbnail } = action;
|
2021-02-18 15:52:47 +00:00
|
|
|
|
2021-05-13 14:38:23 +00:00
|
|
|
/**
|
|
|
|
* Sets up the persistence of the feature {@code virtual-background}.
|
|
|
|
*/
|
2022-10-07 20:51:43 +00:00
|
|
|
PersistenceRegistry.register(STORE_NAME);
|
2021-05-13 14:38:23 +00:00
|
|
|
|
2021-02-18 15:52:47 +00:00
|
|
|
switch (action.type) {
|
|
|
|
case SET_VIRTUAL_BACKGROUND: {
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
virtualSource,
|
2021-04-09 12:17:06 +00:00
|
|
|
blurValue,
|
2021-04-09 14:25:26 +00:00
|
|
|
backgroundType,
|
|
|
|
selectedThumbnail
|
2021-02-18 15:52:47 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
case BACKGROUND_ENABLED: {
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
backgroundEffectEnabled
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return state;
|
|
|
|
});
|