theluyuan 38ba663466
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
init
2025-09-02 14:49:16 +08:00

55 lines
1.2 KiB
TypeScript

import ReducerRegistry from '../base/redux/ReducerRegistry';
import {
PARTICIPANTS_PANE_CLOSE,
PARTICIPANTS_PANE_OPEN,
SET_VOLUME
} from './actionTypes';
import { REDUCER_KEY } from './constants';
export interface IParticipantsPaneState {
isOpen: boolean;
participantsVolume: {
[participantId: string]: number;
};
}
const DEFAULT_STATE = {
isOpen: false,
participantsVolume: {}
};
/**
* Listen for actions that mutate the participants pane state.
*/
ReducerRegistry.register(
REDUCER_KEY, (state: IParticipantsPaneState = DEFAULT_STATE, action) => {
switch (action.type) {
case PARTICIPANTS_PANE_CLOSE:
return {
...state,
isOpen: false
};
case PARTICIPANTS_PANE_OPEN:
return {
...state,
isOpen: true
};
case SET_VOLUME:
return {
...state,
participantsVolume: {
...state.participantsVolume,
[action.participantId]: action.volume
}
};
default:
return state;
}
}
);