Simplify Redux reducer source code

This commit is contained in:
Lyubomir Marinov 2016-12-13 03:15:05 -06:00
parent 80685395ed
commit 4571a4c048
1 changed files with 20 additions and 26 deletions

View File

@ -3,35 +3,29 @@ import { ReducerRegistry } from '../base/redux';
import { LARGE_VIDEO_PARTICIPANT_CHANGED } from './actionTypes'; import { LARGE_VIDEO_PARTICIPANT_CHANGED } from './actionTypes';
const INITIAL_STATE = { ReducerRegistry.register('features/largeVideo', (state = {}, action) => {
participantId: undefined switch (action.type) {
};
ReducerRegistry.register( // When conference is joined, we update ID of local participant from default
'features/largeVideo', // 'local' to real ID. However, in large video we might have already
(state = INITIAL_STATE, action) => { // selected 'local' as participant on stage. So in this case we must update
switch (action.type) { // ID of participant on stage to match ID in 'participants' state to avoid
// additional changes in state and (re)renders.
// When conference is joined, we update ID of local participant from case PARTICIPANT_ID_CHANGED:
// default 'local' to real ID. However, in large video we might have if (state.participantId === action.oldValue) {
// already selected 'local' as participant on stage. So in this case we
// must update ID of participant on stage to match ID in 'participants'
// state to avoid additional changes in state and (re)renders.
case PARTICIPANT_ID_CHANGED:
if (state.participantId === action.oldValue) {
return {
...state,
participantId: action.newValue
};
}
break;
case LARGE_VIDEO_PARTICIPANT_CHANGED:
return { return {
...state, ...state,
participantId: action.participantId participantId: action.newValue
}; };
} }
break;
return state; case LARGE_VIDEO_PARTICIPANT_CHANGED:
}); return {
...state,
participantId: action.participantId
};
}
return state;
});