@stream-io/video-react-native-sdk 0.3.2 → 0.3.4

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ### [0.3.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.3...@stream-io/video-react-native-sdk-0.3.4) (2023-12-06)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **react-native:** unnecessary setState in initial device management ([#1211](https://github.com/GetStream/stream-video-js/issues/1211)) ([c9a10c3](https://github.com/GetStream/stream-video-js/commit/c9a10c3938aeddcae0008d4de84a604c873dcbde))
11
+
12
+ ### [0.3.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.2...@stream-io/video-react-native-sdk-0.3.3) (2023-12-05)
13
+
14
+ ### Dependency Updates
15
+
16
+ * `@stream-io/video-client` updated to version `0.5.1`
17
+ * `@stream-io/video-react-bindings` updated to version `0.3.12`
18
+
19
+ ### Features
20
+
21
+ * **client:** speaking while muted in React Native using temporary peer connection ([#1207](https://github.com/GetStream/stream-video-js/issues/1207)) ([9093006](https://github.com/GetStream/stream-video-js/commit/90930063503b6dfb83572dad8a31e45b16bf1685))
22
+
5
23
  ### [0.3.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.1...@stream-io/video-react-native-sdk-0.3.2) (2023-12-04)
6
24
 
7
25
 
@@ -46,19 +46,6 @@ const MediaStreamManagement = _ref => {
46
46
  };
47
47
  }, [settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate]);
48
48
 
49
- // Get the target resolution from the default device settings and memoize it
50
- // Memoization is needed to avoid unnecessary useEffect triggers
51
- const defaultOnSetting = (0, _react.useMemo)(() => {
52
- if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) === undefined || (settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) === undefined) {
53
- return undefined;
54
- } else {
55
- return {
56
- mic_default_on: settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on,
57
- camera_default_on: settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on
58
- };
59
- }
60
- }, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on]);
61
-
62
49
  // Resume/Disable video stream tracks when app goes to background/foreground
63
50
  // To save on CPU resources
64
51
  (0, _hooks.useAppStateListener)(() => {
@@ -80,57 +67,33 @@ const MediaStreamManagement = _ref => {
80
67
  call === null || call === void 0 || (_call$camera3 = call.camera) === null || _call$camera3 === void 0 || _call$camera3.disable();
81
68
  }
82
69
  });
83
- const [{
70
+
71
+ /*
72
+ * This is the object is used to track the initial audio/video enablement
73
+ * Uses backend settings or the Prop to set initial audio/video enabled
74
+ * Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
75
+ */
76
+ const {
84
77
  initialAudioEnabled,
85
78
  initialVideoEnabled
86
- }, setInitialDeviceState] = (0, _react.useState)({
87
- initialAudioEnabled: undefined,
88
- initialVideoEnabled: undefined
89
- });
90
-
91
- // Use backend settings to set initial audio/video enabled state
92
- // It is applied only if the prop was undefined -- meaning user did not provide any value
93
- (0, _react.useEffect)(() => {
94
- if (!defaultOnSetting) {
95
- return;
79
+ } = (0, _react.useMemo)(() => {
80
+ let _initialAudioEnabled;
81
+ let _initialVideoEnabled;
82
+ if (propInitialAudioEnabled !== undefined) {
83
+ _initialAudioEnabled = propInitialAudioEnabled;
84
+ } else if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) !== undefined) {
85
+ _initialAudioEnabled = settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on;
96
86
  }
97
- const {
98
- mic_default_on,
99
- camera_default_on
100
- } = defaultOnSetting;
101
- setInitialDeviceState(prev => {
102
- let initAudio = prev.initialAudioEnabled;
103
- if (typeof propInitialAudioEnabled === 'undefined') {
104
- initAudio = mic_default_on;
105
- }
106
- let initVideo = prev.initialVideoEnabled;
107
- if (typeof propInitialVideoEnabled === 'undefined') {
108
- initVideo = camera_default_on;
109
- }
110
- return {
111
- initialAudioEnabled: initAudio,
112
- initialVideoEnabled: initVideo
113
- };
114
- });
115
- }, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
116
-
117
- // Apply SDK settings to set the initial audio/video enabled state
118
- (0, _react.useEffect)(() => {
119
- setInitialDeviceState(prev => {
120
- let initAudio = prev.initialAudioEnabled;
121
- if (typeof propInitialAudioEnabled !== 'undefined') {
122
- initAudio = propInitialAudioEnabled;
123
- }
124
- let initVideo = prev.initialVideoEnabled;
125
- if (typeof propInitialVideoEnabled !== 'undefined') {
126
- initVideo = propInitialVideoEnabled;
127
- }
128
- return {
129
- initialAudioEnabled: initAudio,
130
- initialVideoEnabled: initVideo
131
- };
132
- });
133
- }, [propInitialAudioEnabled, propInitialVideoEnabled]);
87
+ if (propInitialVideoEnabled !== undefined) {
88
+ _initialVideoEnabled = propInitialVideoEnabled;
89
+ } else if ((settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) !== undefined) {
90
+ _initialVideoEnabled = settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on;
91
+ }
92
+ return {
93
+ initialAudioEnabled: _initialAudioEnabled,
94
+ initialVideoEnabled: _initialVideoEnabled
95
+ };
96
+ }, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on, propInitialAudioEnabled, propInitialVideoEnabled]);
134
97
 
135
98
  // The main logic
136
99
  // Enable or Disable the audio/video stream based on the initial state
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","useCall","useCallSettings","useCallStateHooks","settings","targetResolutionSetting","useMemo","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","defaultOnSetting","audio","mic_default_on","camera_default_on","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","setInitialDeviceState","useState","useEffect","prev","initAudio","initVideo","microphone","enable","selectTargetResolution","createElement","Fragment","exports"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","useCall","useCallSettings","useCallStateHooks","settings","targetResolutionSetting","useMemo","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","_initialAudioEnabled","_initialVideoEnabled","audio","mic_default_on","camera_default_on","useEffect","microphone","enable","selectTargetResolution","createElement","Fragment","exports"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = exports.version = '0.3.2';
7
+ const version = exports.version = '0.3.4';
8
8
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useMemo, useState } from 'react';
1
+ import React, { useEffect, useMemo } from 'react';
2
2
  import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
3
3
  import { useAppStateListener } from '../utils/hooks';
4
4
  import { NativeModules, Platform } from 'react-native';
@@ -38,19 +38,6 @@ export const MediaStreamManagement = _ref => {
38
38
  };
39
39
  }, [settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate]);
40
40
 
41
- // Get the target resolution from the default device settings and memoize it
42
- // Memoization is needed to avoid unnecessary useEffect triggers
43
- const defaultOnSetting = useMemo(() => {
44
- if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) === undefined || (settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) === undefined) {
45
- return undefined;
46
- } else {
47
- return {
48
- mic_default_on: settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on,
49
- camera_default_on: settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on
50
- };
51
- }
52
- }, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on]);
53
-
54
41
  // Resume/Disable video stream tracks when app goes to background/foreground
55
42
  // To save on CPU resources
56
43
  useAppStateListener(() => {
@@ -72,57 +59,33 @@ export const MediaStreamManagement = _ref => {
72
59
  call === null || call === void 0 || (_call$camera3 = call.camera) === null || _call$camera3 === void 0 || _call$camera3.disable();
73
60
  }
74
61
  });
75
- const [{
62
+
63
+ /*
64
+ * This is the object is used to track the initial audio/video enablement
65
+ * Uses backend settings or the Prop to set initial audio/video enabled
66
+ * Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
67
+ */
68
+ const {
76
69
  initialAudioEnabled,
77
70
  initialVideoEnabled
78
- }, setInitialDeviceState] = useState({
79
- initialAudioEnabled: undefined,
80
- initialVideoEnabled: undefined
81
- });
82
-
83
- // Use backend settings to set initial audio/video enabled state
84
- // It is applied only if the prop was undefined -- meaning user did not provide any value
85
- useEffect(() => {
86
- if (!defaultOnSetting) {
87
- return;
71
+ } = useMemo(() => {
72
+ let _initialAudioEnabled;
73
+ let _initialVideoEnabled;
74
+ if (propInitialAudioEnabled !== undefined) {
75
+ _initialAudioEnabled = propInitialAudioEnabled;
76
+ } else if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) !== undefined) {
77
+ _initialAudioEnabled = settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on;
88
78
  }
89
- const {
90
- mic_default_on,
91
- camera_default_on
92
- } = defaultOnSetting;
93
- setInitialDeviceState(prev => {
94
- let initAudio = prev.initialAudioEnabled;
95
- if (typeof propInitialAudioEnabled === 'undefined') {
96
- initAudio = mic_default_on;
97
- }
98
- let initVideo = prev.initialVideoEnabled;
99
- if (typeof propInitialVideoEnabled === 'undefined') {
100
- initVideo = camera_default_on;
101
- }
102
- return {
103
- initialAudioEnabled: initAudio,
104
- initialVideoEnabled: initVideo
105
- };
106
- });
107
- }, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
108
-
109
- // Apply SDK settings to set the initial audio/video enabled state
110
- useEffect(() => {
111
- setInitialDeviceState(prev => {
112
- let initAudio = prev.initialAudioEnabled;
113
- if (typeof propInitialAudioEnabled !== 'undefined') {
114
- initAudio = propInitialAudioEnabled;
115
- }
116
- let initVideo = prev.initialVideoEnabled;
117
- if (typeof propInitialVideoEnabled !== 'undefined') {
118
- initVideo = propInitialVideoEnabled;
119
- }
120
- return {
121
- initialAudioEnabled: initAudio,
122
- initialVideoEnabled: initVideo
123
- };
124
- });
125
- }, [propInitialAudioEnabled, propInitialVideoEnabled]);
79
+ if (propInitialVideoEnabled !== undefined) {
80
+ _initialVideoEnabled = propInitialVideoEnabled;
81
+ } else if ((settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) !== undefined) {
82
+ _initialVideoEnabled = settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on;
83
+ }
84
+ return {
85
+ initialAudioEnabled: _initialAudioEnabled,
86
+ initialVideoEnabled: _initialVideoEnabled
87
+ };
88
+ }, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on, propInitialAudioEnabled, propInitialVideoEnabled]);
126
89
 
127
90
  // The main logic
128
91
  // Enable or Disable the audio/video stream based on the initial state
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useState","useCall","useCallStateHooks","useAppStateListener","NativeModules","Platform","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","call","useCallSettings","settings","targetResolutionSetting","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","defaultOnSetting","audio","mic_default_on","camera_default_on","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","setInitialDeviceState","prev","initAudio","initVideo","microphone","enable","selectTargetResolution","createElement","Fragment"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useMemo","useCall","useCallStateHooks","useAppStateListener","NativeModules","Platform","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","call","useCallSettings","settings","targetResolutionSetting","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","_initialAudioEnabled","_initialVideoEnabled","audio","mic_default_on","camera_default_on","microphone","enable","selectTargetResolution","createElement","Fragment"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const version = '0.3.2';
1
+ export const version = '0.3.4';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/providers/MediaStreamManagement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAgC,MAAM,OAAO,CAAC;AAM/E,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8GAI/B,kBAAkB,wBAAwB,CAAC,sBA4I7C,CAAC"}
1
+ {"version":3,"file":"MediaStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/providers/MediaStreamManagement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAMrE,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8GAI/B,kBAAkB,wBAAwB,CAAC,sBA6G7C,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "0.3.2";
1
+ export declare const version = "0.3.4";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/video-react-native-sdk",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "dist/commonjs/index.js",
6
6
  "module": "dist/module/index.js",
@@ -45,8 +45,8 @@
45
45
  "!**/.*"
46
46
  ],
47
47
  "dependencies": {
48
- "@stream-io/video-client": "^0.5.0",
49
- "@stream-io/video-react-bindings": "^0.3.11",
48
+ "@stream-io/video-client": "^0.5.1",
49
+ "@stream-io/video-react-bindings": "^0.3.12",
50
50
  "intl-pluralrules": "2.0.1",
51
51
  "lodash.merge": "^4.6.2",
52
52
  "react-native-url-polyfill": "1.3.0",
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren, useEffect, useMemo, useState } from 'react';
1
+ import React, { PropsWithChildren, useEffect, useMemo } from 'react';
2
2
  import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
3
3
  import { useAppStateListener } from '../utils/hooks';
4
4
  import { NativeModules, Platform } from 'react-native';
@@ -55,22 +55,6 @@ export const MediaStreamManagement = ({
55
55
  settings?.video.target_resolution.bitrate,
56
56
  ]);
57
57
 
58
- // Get the target resolution from the default device settings and memoize it
59
- // Memoization is needed to avoid unnecessary useEffect triggers
60
- const defaultOnSetting = useMemo(() => {
61
- if (
62
- settings?.audio.mic_default_on === undefined ||
63
- settings?.video.camera_default_on === undefined
64
- ) {
65
- return undefined;
66
- } else {
67
- return {
68
- mic_default_on: settings?.audio.mic_default_on,
69
- camera_default_on: settings?.video.camera_default_on,
70
- };
71
- }
72
- }, [settings?.audio.mic_default_on, settings?.video.camera_default_on]);
73
-
74
58
  // Resume/Disable video stream tracks when app goes to background/foreground
75
59
  // To save on CPU resources
76
60
  useAppStateListener(
@@ -94,51 +78,36 @@ export const MediaStreamManagement = ({
94
78
  },
95
79
  );
96
80
 
97
- const [{ initialAudioEnabled, initialVideoEnabled }, setInitialDeviceState] =
98
- useState<MediaDevicesInitialState>({
99
- initialAudioEnabled: undefined,
100
- initialVideoEnabled: undefined,
101
- });
102
-
103
- // Use backend settings to set initial audio/video enabled state
104
- // It is applied only if the prop was undefined -- meaning user did not provide any value
105
- useEffect(() => {
106
- if (!defaultOnSetting) {
107
- return;
108
- }
109
-
110
- const { mic_default_on, camera_default_on } = defaultOnSetting;
111
- setInitialDeviceState((prev) => {
112
- let initAudio = prev.initialAudioEnabled;
113
- if (typeof propInitialAudioEnabled === 'undefined') {
114
- initAudio = mic_default_on;
115
- }
116
- let initVideo = prev.initialVideoEnabled;
117
- if (typeof propInitialVideoEnabled === 'undefined') {
118
- initVideo = camera_default_on;
81
+ /*
82
+ * This is the object is used to track the initial audio/video enablement
83
+ * Uses backend settings or the Prop to set initial audio/video enabled
84
+ * Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
85
+ */
86
+ const { initialAudioEnabled, initialVideoEnabled } =
87
+ useMemo<MediaDevicesInitialState>(() => {
88
+ let _initialAudioEnabled: boolean | undefined;
89
+ let _initialVideoEnabled: boolean | undefined;
90
+ if (propInitialAudioEnabled !== undefined) {
91
+ _initialAudioEnabled = propInitialAudioEnabled;
92
+ } else if (settings?.audio.mic_default_on !== undefined) {
93
+ _initialAudioEnabled = settings?.audio.mic_default_on;
119
94
  }
120
- return { initialAudioEnabled: initAudio, initialVideoEnabled: initVideo };
121
- });
122
- }, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
123
95
 
124
- // Apply SDK settings to set the initial audio/video enabled state
125
- useEffect(() => {
126
- setInitialDeviceState((prev) => {
127
- let initAudio = prev.initialAudioEnabled;
128
- if (typeof propInitialAudioEnabled !== 'undefined') {
129
- initAudio = propInitialAudioEnabled;
96
+ if (propInitialVideoEnabled !== undefined) {
97
+ _initialVideoEnabled = propInitialVideoEnabled;
98
+ } else if (settings?.video.camera_default_on !== undefined) {
99
+ _initialVideoEnabled = settings?.video.camera_default_on;
130
100
  }
131
- let initVideo = prev.initialVideoEnabled;
132
- if (typeof propInitialVideoEnabled !== 'undefined') {
133
- initVideo = propInitialVideoEnabled;
134
- }
135
-
136
101
  return {
137
- initialAudioEnabled: initAudio,
138
- initialVideoEnabled: initVideo,
102
+ initialAudioEnabled: _initialAudioEnabled,
103
+ initialVideoEnabled: _initialVideoEnabled,
139
104
  };
140
- });
141
- }, [propInitialAudioEnabled, propInitialVideoEnabled]);
105
+ }, [
106
+ settings?.audio.mic_default_on,
107
+ settings?.video.camera_default_on,
108
+ propInitialAudioEnabled,
109
+ propInitialVideoEnabled,
110
+ ]);
142
111
 
143
112
  // The main logic
144
113
  // Enable or Disable the audio/video stream based on the initial state
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.3.2';
1
+ export const version = '0.3.4';