56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
|
import { setPassword } from '../base/conference';
|
||
|
|
||
|
import { BEGIN_ROOM_LOCK_REQUEST, END_ROOM_LOCK_REQUEST } from './actionTypes';
|
||
|
|
||
|
/**
|
||
|
* Begins a (user) request to lock a specific conference/room.
|
||
|
*
|
||
|
* @param {JitsiConference|undefined} conference - The JitsiConference to lock
|
||
|
* if specified or undefined if the current JitsiConference is to be locked.
|
||
|
* @returns {Function}
|
||
|
*/
|
||
|
export function beginRoomLockRequest(conference) {
|
||
|
return (dispatch, getState) => {
|
||
|
if (typeof conference === 'undefined') {
|
||
|
const state = getState();
|
||
|
|
||
|
// eslint-disable-next-line no-param-reassign
|
||
|
conference = state['features/base/conference'].conference;
|
||
|
}
|
||
|
|
||
|
if (conference) {
|
||
|
dispatch({
|
||
|
type: BEGIN_ROOM_LOCK_REQUEST,
|
||
|
conference
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ends a (user) request to lock a specific conference/room.
|
||
|
*
|
||
|
* @param {JitsiConference} conference - The JitsiConference to lock.
|
||
|
* @param {string|undefined} password - The password with which the specified
|
||
|
* conference is to be locked or undefined to cancel the (user) request to lock
|
||
|
* the specified conference.
|
||
|
* @returns {Function}
|
||
|
*/
|
||
|
export function endRoomLockRequest(conference, password) {
|
||
|
return dispatch => {
|
||
|
const setPassword_
|
||
|
= password
|
||
|
? dispatch(setPassword(conference, conference.lock, password))
|
||
|
: Promise.resolve();
|
||
|
const endRoomLockRequest_ = () => {
|
||
|
dispatch({
|
||
|
type: END_ROOM_LOCK_REQUEST,
|
||
|
conference,
|
||
|
password
|
||
|
});
|
||
|
};
|
||
|
|
||
|
setPassword_.then(endRoomLockRequest_, endRoomLockRequest_);
|
||
|
};
|
||
|
}
|