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

55 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-03-07 03:34:51 +00:00
import {
HIDE_DIALOG,
OPEN_DIALOG
} from './actionTypes';
/**
* Signals Dialog to close its dialog.
*
* @returns {{
* type: HIDE_DIALOG
* }}
*/
export function hideDialog() {
return {
type: HIDE_DIALOG
};
}
/**
* Signals Dialog to open dialog.
*
* @param {Object} component - The component to display as dialog.
* @param {Object} componentProps - The properties needed for that component.
* @returns {Object}
*/
export function openDialog(component, componentProps) {
return {
type: OPEN_DIALOG,
component,
componentProps
};
}
/**
* Signals Dialog to open a dialog with the specified component if the component
* is not already open. If it is open, then Dialog is signaled to close
* its dialog.
*
* @param {Object} component - The component to display as dialog.
* @param {Object} componentProps - The properties needed for that component.
* @returns {Object}
*/
export function toggleDialog(component, componentProps) {
return (dispatch, getState) => {
const state = getState();
const dialogState = state['features/base/dialog'];
if (dialogState.component === component) {
dispatch(hideDialog());
} else {
dispatch(openDialog(component, componentProps));
}
};
}