jiti-meet/react/features/share-room/actions.js

66 lines
1.6 KiB
JavaScript

/* @flow */
import { BEGIN_SHARE_ROOM, END_SHARE_ROOM } from './actionTypes';
/**
* Begins the UI procedure to share the URL for the current conference/room.
*
* @param {string} roomURL - The URL of the room to share.
* @public
* @returns {Function}
*/
export function beginShareRoom(roomURL: ?string): Function {
return (dispatch, getState) => {
if (!roomURL) {
const { conference, room } = getState()['features/base/conference'];
// eslint-disable-next-line no-param-reassign
roomURL = _getRoomURL(conference, room);
}
if (roomURL) {
dispatch({
type: BEGIN_SHARE_ROOM,
roomURL
});
}
};
}
/**
* Ends the UI procedure to share a specific conference/room URL.
*
* @param {string} roomURL - The URL of the conference/room which was shared.
* @param {boolean} shared - True if the URL was shared successfully; false,
* otherwise.
* @public
* @returns {{
* type: END_SHARE_ROOM,
* roomURL: string,
* shared: boolean
* }}
*/
export function endShareRoom(roomURL: string, shared: boolean): Object {
return {
type: END_SHARE_ROOM,
roomURL,
shared
};
}
/**
* Gets the public URL of a conference/room.
*
* @param {JitsiConference} conference - The JitsiConference to share the URL
* of.
* @param {string} room - The name of the room to share the URL of.
* @private
* @returns {string|null}
*/
function _getRoomURL(conference, room) {
return (
conference
&& room
&& `https://${conference.connection.options.hosts.domain}/${room}`);
}