@whereby.com/browser-sdk 2.10.1 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,10 +99,12 @@ interface RoomConnectionActions {
99
99
  toggleLowDataMode(enabled?: boolean): void;
100
100
  acceptWaitingParticipant(participantId: string): void;
101
101
  knock(): void;
102
+ joinRoom(): void;
103
+ leaveRoom(): void;
102
104
  lockRoom(locked: boolean): void;
103
105
  muteParticipants(clientIds: string[]): void;
104
106
  kickParticipant(clientId: string): void;
105
- endMeeting(): void;
107
+ endMeeting(stayBehind?: boolean): void;
106
108
  rejectWaitingParticipant(participantId: string): void;
107
109
  sendChatMessage(text: string): void;
108
110
  setDisplayName(displayName: string): void;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useState, useEffect, useCallback } from 'react';
3
- import { debounce, selectChatMessages, selectCloudRecordingRaw, selectLocalParticipantRaw, selectLocalMediaStream, selectRemoteParticipants, selectScreenshares, selectRoomConnectionStatus, selectStreamingRaw, selectWaitingParticipants, createServices, createStore, observeStore, doAppJoin, appLeft, doRtcReportStreamResolution, doSendChatMessage, doKnockRoom, doSetDisplayName, toggleCameraEnabled, toggleMicrophoneEnabled, toggleLowDataModeEnabled, doAcceptWaitingParticipant, doRejectWaitingParticipant, doStartCloudRecording, doStartScreenshare, doStopCloudRecording, doStopScreenshare, doLockRoom, doRequestAudioEnable, doKickParticipant, doEndMeeting, selectCameraDeviceError, selectCameraDevices, selectCurrentCameraDeviceId, selectCurrentMicrophoneDeviceId, selectIsSettingCameraDevice, selectIsSettingMicrophoneDevice, selectIsLocalMediaStarting, selectMicrophoneDeviceError, selectMicrophoneDevices, selectSpeakerDevices, selectLocalMediaStartError, doStartLocalMedia, doStopLocalMedia, setCurrentCameraDeviceId, setCurrentMicrophoneDeviceId } from '@whereby.com/core';
3
+ import { debounce, selectChatMessages, selectCloudRecordingRaw, selectLocalParticipantRaw, selectLocalMediaStream, selectRemoteParticipants, selectScreenshares, selectRoomConnectionStatus, selectStreamingRaw, selectWaitingParticipants, createServices, createStore, observeStore, doAppConfigure, doAppStart, doAppStop, doRtcReportStreamResolution, doSendChatMessage, doKnockRoom, doSetDisplayName, toggleCameraEnabled, toggleMicrophoneEnabled, toggleLowDataModeEnabled, doAcceptWaitingParticipant, doRejectWaitingParticipant, doStartCloudRecording, doStartScreenshare, doStopCloudRecording, doStopScreenshare, doLockRoom, doRequestAudioEnable, doKickParticipant, doEndMeeting, selectCameraDeviceError, selectCameraDevices, selectCurrentCameraDeviceId, selectCurrentMicrophoneDeviceId, selectIsSettingCameraDevice, selectIsSettingMicrophoneDevice, selectIsLocalMediaStarting, selectMicrophoneDeviceError, selectMicrophoneDevices, selectSpeakerDevices, selectLocalMediaStartError, doStartLocalMedia, doStopLocalMedia, setCurrentCameraDeviceId, setCurrentMicrophoneDeviceId } from '@whereby.com/core';
4
4
  import { createSelector } from '@reduxjs/toolkit';
5
5
 
6
6
  /******************************************************************************
@@ -99,12 +99,12 @@ const selectRoomConnectionState = createSelector(selectChatMessages, selectCloud
99
99
  return state;
100
100
  });
101
101
 
102
- const browserSdkVersion = "2.10.1";
102
+ const browserSdkVersion = "2.11.0";
103
103
 
104
104
  const initialState$1 = {
105
105
  chatMessages: [],
106
106
  remoteParticipants: [],
107
- connectionStatus: "initializing",
107
+ connectionStatus: "ready",
108
108
  screenshares: [],
109
109
  waitingParticipants: [],
110
110
  };
@@ -129,7 +129,7 @@ function useRoomConnection(roomUrl, roomConnectionOptions = defaultRoomConnectio
129
129
  const url = new URL(roomUrl);
130
130
  const searchParams = new URLSearchParams(url.search);
131
131
  const roomKey = roomConnectionOptions.roomKey || searchParams.get("roomKey");
132
- store.dispatch(doAppJoin({
132
+ store.dispatch(doAppConfigure({
133
133
  displayName: roomConnectionOptions.displayName || "Guest",
134
134
  localMediaOptions: roomConnectionOptions.localMedia
135
135
  ? undefined
@@ -139,9 +139,10 @@ function useRoomConnection(roomUrl, roomConnectionOptions = defaultRoomConnectio
139
139
  userAgent: `browser-sdk:${browserSdkVersion}`,
140
140
  externalId: roomConnectionOptions.externalId || null,
141
141
  }));
142
+ store.dispatch(doAppStart());
142
143
  return () => {
144
+ store.dispatch(doAppStop());
143
145
  unsubscribe();
144
- store.dispatch(appLeft());
145
146
  };
146
147
  }, []);
147
148
  React.useEffect(() => {
@@ -171,18 +172,22 @@ function useRoomConnection(roomUrl, roomConnectionOptions = defaultRoomConnectio
171
172
  const startScreenshare = React.useCallback(() => store.dispatch(doStartScreenshare()), [store]);
172
173
  const stopCloudRecording = React.useCallback(() => store.dispatch(doStopCloudRecording()), [store]);
173
174
  const stopScreenshare = React.useCallback(() => store.dispatch(doStopScreenshare()), [store]);
175
+ const joinRoom = React.useCallback(() => store.dispatch(doAppStart()), [store]);
176
+ const leaveRoom = React.useCallback(() => store.dispatch(doAppStop()), [store]);
174
177
  const lockRoom = React.useCallback((locked) => store.dispatch(doLockRoom({ locked })), [store]);
175
178
  const muteParticipants = React.useCallback((clientIds) => {
176
179
  store.dispatch(doRequestAudioEnable({ clientIds, enable: false }));
177
180
  }, [store]);
178
181
  const kickParticipant = React.useCallback((clientId) => store.dispatch(doKickParticipant({ clientId })), [store]);
179
- const endMeeting = React.useCallback(() => store.dispatch(doEndMeeting()), [store]);
182
+ const endMeeting = React.useCallback((stayBehind) => store.dispatch(doEndMeeting({ stayBehind })), [store]);
180
183
  return {
181
184
  state: roomConnectionState,
182
185
  actions: {
183
186
  toggleLowDataMode,
184
187
  acceptWaitingParticipant,
185
188
  knock,
189
+ joinRoom,
190
+ leaveRoom,
186
191
  lockRoom,
187
192
  muteParticipants,
188
193
  kickParticipant,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whereby.com/browser-sdk",
3
- "version": "2.10.1",
3
+ "version": "2.11.0",
4
4
  "description": "Modules for integration Whereby video in web apps",
5
5
  "author": "Whereby AS",
6
6
  "license": "MIT",
@@ -75,7 +75,7 @@
75
75
  },
76
76
  "dependencies": {
77
77
  "@reduxjs/toolkit": "^2.2.3",
78
- "@whereby.com/core": "0.13.1",
78
+ "@whereby.com/core": "0.14.0",
79
79
  "heresy": "^1.0.4"
80
80
  },
81
81
  "peerDependencies": {