jiti-meet/react/features/base/dialog/reducer.js

41 lines
1.1 KiB
JavaScript
Raw Normal View History

/* @flow */
import { assign, ReducerRegistry } from '../redux';
2017-03-07 03:34:51 +00:00
import { HIDE_DIALOG, OPEN_DIALOG } from './actionTypes';
2017-03-07 03:34:51 +00:00
/**
* Reduces redux actions which show or hide dialogs.
2017-03-07 03:34:51 +00:00
*
* @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.
2017-03-07 03:34:51 +00:00
*/
ReducerRegistry.register('features/base/dialog', (state = {}, action) => {
switch (action.type) {
case HIDE_DIALOG: {
const { component } = action;
if (typeof component === 'undefined' || state.component === component) {
return assign(state, {
component: undefined,
2020-05-20 08:25:31 +00:00
componentProps: undefined,
rawDialog: false
});
}
break;
}
2017-03-07 03:34:51 +00:00
case OPEN_DIALOG:
return assign(state, {
2017-03-07 03:34:51 +00:00
component: action.component,
2020-05-20 08:25:31 +00:00
componentProps: action.componentProps,
rawDialog: action.rawDialog
2017-03-07 03:34:51 +00:00
});
}
return state;
});