import {
ROOM_LOCK,
BYE,
ROOM_REJOIN,
} from './constants';
import SkylinkEvent from '../utils/skylinkEvent';
/**
* @event SkylinkEvents.ROOM_LOCK
* @description Event triggered when Room locked status has changed.
* @param {Object} detail - Event's payload
* @param {Boolean} detail.isLocked The flag if Room is locked.
* @param {String} detail.peerId The Peer ID.
* @param {peerInfo} detail.peerInfo The Peer session information. Object signature matches the <code>peerInfo</code> parameter payload received in the <code> {@link SkylinkEvents.event:PEER_JOINED|PEER JOINED}</code> event.
* @param {Boolean} detail.isSelf The flag if User changed the Room locked status.
* @param {roomInfo} detail.room The room.
*
*/
export const roomLock = (detail = {}) => new SkylinkEvent(ROOM_LOCK, { detail });
/**
* @event SkylinkEvents.ROOM_REJOIN
* @description Event triggered when <code>joinRoom</code> can be re-initiated. This event is preceded by <code>leaveRoom</code> initiated by the
* SDK in response to peer connection changing to <code>FAILED</code> state.
* @param {Object} detail - Event's payload
* @param {roomInfo} detail.room - The previous room
* @param {String} detail.peerId - The previous peer id
* @return {SkylinkEvent}
*/
export const roomRejoin = (detail = {}) => new SkylinkEvent(ROOM_REJOIN, { detail });
/**
* @event SkylinkEvents.BYE
* @description Event triggered when a user leaves a room.
* @param {Object} detail - Event's payload.
* @param {String} detail.rid - The User's Room session Peer ID
* @param {peerInfo} detail.mid - The User's id
* @private
*/
export const bye = (detail = {}) => new SkylinkEvent(BYE, { detail });