feat(api): add notifications for kicked participants
This commit is contained in:
parent
2dc06c28e3
commit
0734ce7ae3
13
doc/api.md
13
doc/api.md
|
@ -387,6 +387,19 @@ changes. The listener will receive an object with the following structure:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* **participantKickedOut** - event notifications about a participants being removed from the room. The listener will receive an object with the following structure:
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
kicked: {
|
||||||
|
id: string, // the id of the participant removed from the room
|
||||||
|
local: boolean // whether or not the participant is the local particiapnt
|
||||||
|
},
|
||||||
|
kicker: {
|
||||||
|
id: string // the id of the participant who kicked out the other participant
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
* **participantLeft** - event notifications about participants that leave the room. The listener will receive an object with the following structure:
|
* **participantLeft** - event notifications about participants that leave the room. The listener will receive an object with the following structure:
|
||||||
```javascript
|
```javascript
|
||||||
{
|
{
|
||||||
|
|
|
@ -658,6 +658,24 @@ class API {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notify external application of a participant, remote or local, being
|
||||||
|
* removed from the conference by another participant.
|
||||||
|
*
|
||||||
|
* @param {string} kicked - The ID of the participant removed from the
|
||||||
|
* conference.
|
||||||
|
* @param {string} kicker - The ID of the participant that removed the
|
||||||
|
* other participant.
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
notifyKickedOut(kicked: Object, kicker: Object) {
|
||||||
|
this._sendEvent({
|
||||||
|
name: 'participant-kicked-out',
|
||||||
|
kicked,
|
||||||
|
kicker
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify external application of the current meeting requiring a password
|
* Notify external application of the current meeting requiring a password
|
||||||
* to join.
|
* to join.
|
||||||
|
|
|
@ -63,6 +63,7 @@ const events = {
|
||||||
'mic-error': 'micError',
|
'mic-error': 'micError',
|
||||||
'outgoing-message': 'outgoingMessage',
|
'outgoing-message': 'outgoingMessage',
|
||||||
'participant-joined': 'participantJoined',
|
'participant-joined': 'participantJoined',
|
||||||
|
'participant-kicked-out': 'participantKickedOut',
|
||||||
'participant-left': 'participantLeft',
|
'participant-left': 'participantLeft',
|
||||||
'password-required': 'passwordRequired',
|
'password-required': 'passwordRequired',
|
||||||
'proxy-connection-event': 'proxyConnectionEvent',
|
'proxy-connection-event': 'proxyConnectionEvent',
|
||||||
|
|
|
@ -65,6 +65,18 @@ export const PARTICIPANT_ID_CHANGED = 'PARTICIPANT_ID_CHANGED';
|
||||||
*/
|
*/
|
||||||
export const PARTICIPANT_JOINED = 'PARTICIPANT_JOINED';
|
export const PARTICIPANT_JOINED = 'PARTICIPANT_JOINED';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action to signal that a participant has been removed from a conference by
|
||||||
|
* another participant.
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* type: PARTICIPANT_KICKED,
|
||||||
|
* kicked: Object,
|
||||||
|
* kicker: Object
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
export const PARTICIPANT_KICKED = 'PARTICIPANT_KICKED';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action to handle case when participant lefts.
|
* Action to handle case when participant lefts.
|
||||||
*
|
*
|
||||||
|
|
|
@ -9,6 +9,7 @@ import {
|
||||||
MUTE_REMOTE_PARTICIPANT,
|
MUTE_REMOTE_PARTICIPANT,
|
||||||
PARTICIPANT_ID_CHANGED,
|
PARTICIPANT_ID_CHANGED,
|
||||||
PARTICIPANT_JOINED,
|
PARTICIPANT_JOINED,
|
||||||
|
PARTICIPANT_KICKED,
|
||||||
PARTICIPANT_LEFT,
|
PARTICIPANT_LEFT,
|
||||||
PARTICIPANT_UPDATED,
|
PARTICIPANT_UPDATED,
|
||||||
PIN_PARTICIPANT
|
PIN_PARTICIPANT
|
||||||
|
@ -415,6 +416,12 @@ export function participantMutedUs(participant) {
|
||||||
export function participantKicked(kicker, kicked) {
|
export function participantKicked(kicker, kicked) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
|
|
||||||
|
dispatch({
|
||||||
|
type: PARTICIPANT_KICKED,
|
||||||
|
kicked: kicked.getId(),
|
||||||
|
kicker: kicker.getId()
|
||||||
|
});
|
||||||
|
|
||||||
dispatch(showNotification({
|
dispatch(showNotification({
|
||||||
titleArguments: {
|
titleArguments: {
|
||||||
kicked:
|
kicked:
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
|
||||||
import { CONFERENCE_FAILED, CONFERENCE_JOINED } from '../base/conference';
|
import {
|
||||||
|
CONFERENCE_FAILED,
|
||||||
|
CONFERENCE_JOINED,
|
||||||
|
KICKED_OUT
|
||||||
|
} from '../base/conference';
|
||||||
import { NOTIFY_CAMERA_ERROR, NOTIFY_MIC_ERROR } from '../base/devices';
|
import { NOTIFY_CAMERA_ERROR, NOTIFY_MIC_ERROR } from '../base/devices';
|
||||||
import { JitsiConferenceErrors } from '../base/lib-jitsi-meet';
|
import { JitsiConferenceErrors } from '../base/lib-jitsi-meet';
|
||||||
import {
|
import {
|
||||||
|
PARTICIPANT_KICKED,
|
||||||
getAvatarURLByParticipantId,
|
getAvatarURLByParticipantId,
|
||||||
getLocalParticipant
|
getLocalParticipant
|
||||||
} from '../base/participants';
|
} from '../base/participants';
|
||||||
|
@ -53,6 +58,16 @@ MiddlewareRegistry.register(store => next => action => {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case KICKED_OUT:
|
||||||
|
APP.API.notifyKickedOut(
|
||||||
|
{
|
||||||
|
id: getLocalParticipant(store.getState()).id,
|
||||||
|
local: true
|
||||||
|
},
|
||||||
|
{ id: action.participant.getId() }
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
case NOTIFY_CAMERA_ERROR:
|
case NOTIFY_CAMERA_ERROR:
|
||||||
if (action.error) {
|
if (action.error) {
|
||||||
APP.API.notifyOnCameraError(
|
APP.API.notifyOnCameraError(
|
||||||
|
@ -66,6 +81,15 @@ MiddlewareRegistry.register(store => next => action => {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PARTICIPANT_KICKED:
|
||||||
|
APP.API.notifyKickedOut(
|
||||||
|
{
|
||||||
|
id: action.kicked,
|
||||||
|
local: false
|
||||||
|
},
|
||||||
|
{ id: action.kicker });
|
||||||
|
break;
|
||||||
|
|
||||||
case SET_FILMSTRIP_VISIBLE:
|
case SET_FILMSTRIP_VISIBLE:
|
||||||
APP.API.notifyFilmstripDisplayChanged(action.visible);
|
APP.API.notifyFilmstripDisplayChanged(action.visible);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue