@stream-io/video-react-bindings 0.2.2 → 0.2.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,21 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ### [0.2.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-0.2.3...@stream-io/video-react-bindings-0.2.4) (2023-08-18)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `@stream-io/video-client` updated to version `0.1.0`
10
+ ### [0.2.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-0.2.2...@stream-io/video-react-bindings-0.2.3) (2023-08-16)
11
+
12
+ ### Dependency Updates
13
+
14
+ * `@stream-io/video-client` updated to version `0.1.0`
15
+
16
+ ### Features
17
+
18
+ * use new device API in RN SDK and move to @stream-io/react-native-webrtc ([#925](https://github.com/GetStream/stream-video-js/issues/925)) ([8442d82](https://github.com/GetStream/stream-video-js/commit/8442d821a8eb97cb4be6e6d71b64337c04a86a15))
19
+
5
20
  ### [0.2.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-0.2.1...@stream-io/video-react-bindings-0.2.2) (2023-08-16)
6
21
 
7
22
  ### Dependency Updates
@@ -25,13 +25,13 @@ export const useCreateI18n = ({ i18nInstance, language, translationsOverrides, }
25
25
  new StreamI18n({ currentLanguage: language, translationsOverrides }));
26
26
  const [t, setTranslationFn] = useState(() => defaultTranslationFunction);
27
27
  useEffect(() => {
28
- if (i18n.isInitialized && language && (i18n === null || i18n === void 0 ? void 0 : i18n.currentLanguage) !== language) {
29
- i18n.changeLanguage(language);
30
- }
31
- else if (!i18n.isInitialized) {
32
- if (!language)
33
- i18n.changeLanguage();
28
+ const { isInitialized } = i18n;
29
+ if (!isInitialized) {
34
30
  i18n.init().then((_i18n) => setTranslationFn(() => _i18n.i18nInstance.t));
31
+ return;
32
+ }
33
+ if (language && (i18n === null || i18n === void 0 ? void 0 : i18n.currentLanguage) !== language) {
34
+ i18n.changeLanguage(language);
35
35
  }
36
36
  }, [i18n, i18nInstance, language, translationsOverrides]);
37
37
  return { i18n, t };
@@ -1 +1 @@
1
- {"version":3,"file":"StreamI18nContext.js","sourceRoot":"","sources":["../../../src/contexts/StreamI18nContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,aAAa,EAEb,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,0BAA0B,EAC1B,UAAU,GAEX,MAAM,iBAAiB,CAAC;AAOzB,MAAM,iBAAiB,GAAG,aAAa,CAAyB;IAC9D,CAAC,EAAE,0BAA0B;CAC9B,CAAC,CAAC;AAUH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAGU,EAAE,EAAE;QAHd,EACjC,QAAQ,OAEmC,EADxC,gBAAgB,cAFc,YAGlC,CADoB;IAEnB,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEpD,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,kBAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,gBAC3C,QAAQ,IACkB,CAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,qBAAqB,GACJ,EAAE,EAAE;IACrB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CACrB,GAAG,EAAE,CACH,YAAY;QACZ,IAAI,UAAU,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CACvE,CAAC;IACF,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CACpC,GAAG,EAAE,CAAC,0BAA0B,CACjC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,aAAa,IAAI,QAAQ,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,MAAK,QAAQ,EAAE;YACxE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC/B;aAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC9B,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3E;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE1D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"StreamI18nContext.js","sourceRoot":"","sources":["../../../src/contexts/StreamI18nContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,aAAa,EAEb,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,0BAA0B,EAC1B,UAAU,GAEX,MAAM,iBAAiB,CAAC;AAOzB,MAAM,iBAAiB,GAAG,aAAa,CAAyB;IAC9D,CAAC,EAAE,0BAA0B;CAC9B,CAAC,CAAC;AAUH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAGU,EAAE,EAAE;QAHd,EACjC,QAAQ,OAEmC,EADxC,gBAAgB,cAFc,YAGlC,CADoB;IAEnB,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEpD,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,kBAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,gBAC3C,QAAQ,IACkB,CAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,qBAAqB,GACJ,EAAE,EAAE;IACrB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CACrB,GAAG,EAAE,CACH,YAAY;QACZ,IAAI,UAAU,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CACvE,CAAC;IACF,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CACpC,GAAG,EAAE,CAAC,0BAA0B,CACjC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO;SACR;QACD,IAAI,QAAQ,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,MAAK,QAAQ,EAAE;YAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC/B;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE1D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CallIngressResponse, CallSessionResponse, CallSettingsResponse, CallState, CallStatsReport, Comparator, EgressResponse, MemberResponse, StreamVideoParticipant, UserResponse } from '@stream-io/video-client';
1
+ import { CallState, Comparator, CallIngressResponse, CallSessionResponse, CallSettingsResponse, CallStatsReport, EgressResponse, MemberResponse, StreamVideoParticipant, UserResponse } from '@stream-io/video-client';
2
2
  /**
3
3
  * Utility hook, which provides the current call's state.
4
4
  *
@@ -163,3 +163,22 @@ export declare const useParticipantCount: () => number;
163
163
  * @category Call State
164
164
  */
165
165
  export declare const useAnonymousParticipantCount: () => number;
166
+ /**
167
+ * Returns the camera state of the current call.
168
+ *
169
+ * @category Camera Manager State
170
+ *
171
+ */
172
+ export declare const useCameraState: () => {
173
+ status: import("@stream-io/video-client").InputDeviceStatus;
174
+ direction: import("@stream-io/video-client").CameraDirection;
175
+ };
176
+ /**
177
+ * Returns the microphone state of the current call.
178
+ *
179
+ * @category Microphone Manager State
180
+ */
181
+ export declare const useMicrophoneState: () => {
182
+ status: import("@stream-io/video-client").InputDeviceStatus;
183
+ selectedDevice: string | undefined;
184
+ };
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from 'react';
2
- import { CallState, } from '@stream-io/video-client';
2
+ import { CallState, CameraManagerState, MicrophoneManagerState, } from '@stream-io/video-client';
3
3
  import { useCall } from '../contexts';
4
4
  import { useObservableValue } from './useObservableValue';
5
5
  /**
@@ -262,4 +262,39 @@ export const useAnonymousParticipantCount = () => {
262
262
  const { anonymousParticipantCount$ } = useCallState();
263
263
  return useObservableValue(anonymousParticipantCount$);
264
264
  };
265
+ /**
266
+ * Returns the camera state of the current call.
267
+ *
268
+ * @category Camera Manager State
269
+ *
270
+ */
271
+ export const useCameraState = () => {
272
+ const call = useCall();
273
+ const { camera = {
274
+ state: new CameraManagerState(),
275
+ }, } = call;
276
+ const status = useObservableValue(camera.state.status$);
277
+ const direction = useObservableValue(camera.state.direction$);
278
+ return {
279
+ status,
280
+ direction,
281
+ };
282
+ };
283
+ /**
284
+ * Returns the microphone state of the current call.
285
+ *
286
+ * @category Microphone Manager State
287
+ */
288
+ export const useMicrophoneState = () => {
289
+ const call = useCall();
290
+ const { microphone = {
291
+ state: new MicrophoneManagerState(),
292
+ }, } = call;
293
+ const status = useObservableValue(microphone.state.status$);
294
+ const selectedDevice = useObservableValue(microphone.state.selectedDevice$);
295
+ return {
296
+ status,
297
+ selectedDevice,
298
+ };
299
+ };
265
300
  //# sourceMappingURL=callStateHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callStateHooks.js","sourceRoot":"","sources":["../../../src/hooks/callStateHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAIL,SAAS,GAOV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,oFAAoF;IACpF,wFAAwF;IACxF,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,OAAO,GACX,uDAAuD;YACvD,6EAA6E,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,IAAI,SAAS,EAAE,CAAC;KACxB;IACD,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAY,EAAE;IACxD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAY,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,CAAC,aAAa,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAa,EAAE;IAClD,MAAM,EAAE,eAAe,EAAE,GAAG,YAAY,EAAE,CAAC;IAC3C,OAAO,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAqB,EAAE;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAA6B,EAAE;IAC7D,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAwB,EAAE;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAA+B,EAAE;IAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAoC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAoC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAqC,EAAE;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAY,EAAE;IAC3D,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAA6B,EAAE;IAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAY,EAAE;IACpD,MAAM,EAAE,sBAAsB,EAAE,GAAG,YAAY,EAAE,CAAC;IAClD,OAAO,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAgC,EAAE;IAClE,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5C,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAuC,EAAE;IACzE,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5C,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,MAAM,MAOJ,EAAE,EAAE,EAAE;IACR,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAEvD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,MAAM,EAAE;YACV,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7C,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/C,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7C,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC/C,MAAM,EAAE,0BAA0B,EAAE,GAAG,YAAY,EAAE,CAAC;IACtD,OAAO,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;AACxD,CAAC,CAAC"}
1
+ {"version":3,"file":"callStateHooks.js","sourceRoot":"","sources":["../../../src/hooks/callStateHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAEL,SAAS,EACT,kBAAkB,EAElB,sBAAsB,GASvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,oFAAoF;IACpF,wFAAwF;IACxF,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,OAAO,GACX,uDAAuD;YACvD,6EAA6E,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,IAAI,SAAS,EAAE,CAAC;KACxB;IACD,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAY,EAAE;IACxD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAY,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,CAAC,aAAa,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAa,EAAE;IAClD,MAAM,EAAE,eAAe,EAAE,GAAG,YAAY,EAAE,CAAC;IAC3C,OAAO,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAqB,EAAE;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAA6B,EAAE;IAC7D,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAwB,EAAE;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAA+B,EAAE;IAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAoC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAoC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAqC,EAAE;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAY,EAAE;IAC3D,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAA6B,EAAE;IAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAY,EAAE;IACpD,MAAM,EAAE,sBAAsB,EAAE,GAAG,YAAY,EAAE,CAAC;IAClD,OAAO,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAgC,EAAE;IAClE,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5C,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAuC,EAAE;IACzE,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5C,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,MAAM,MAOJ,EAAE,EAAE,EAAE;IACR,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAEvD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,MAAM,EAAE;YACV,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7C,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/C,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7C,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC/C,MAAM,EAAE,0BAA0B,EAAE,GAAG,YAAY,EAAE,CAAC;IACtD,OAAO,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,EACJ,MAAM,GAAG;QACP,KAAK,EAAE,IAAI,kBAAkB,EAAE;KAChC,GACF,GAAG,IAAY,CAAC;IAEjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,EACJ,UAAU,GAAG;QACX,KAAK,EAAE,IAAI,sBAAsB,EAAE;KACpC,GACF,GAAG,IAAY,CAAC;IAEjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE5E,OAAO;QACL,MAAM;QACN,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
@@ -12,4 +12,4 @@ export declare const useHasPermissions: (...permissions: OwnCapability[]) => boo
12
12
  *
13
13
  * @category Call State
14
14
  */
15
- export declare const useOwnCapabilities: () => OwnCapability[];
15
+ export declare const useOwnCapabilities: () => OwnCapability[] | undefined;
@@ -9,7 +9,7 @@ import { useObservableValue } from './useObservableValue';
9
9
  */
10
10
  export const useHasPermissions = (...permissions) => {
11
11
  const capabilities = useOwnCapabilities();
12
- return permissions.every((permission) => capabilities.includes(permission));
12
+ return permissions.every((permission) => capabilities === null || capabilities === void 0 ? void 0 : capabilities.includes(permission));
13
13
  };
14
14
  /**
15
15
  * A hook which returns the local participant's own capabilities.
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/hooks/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,WAA4B,EAAW,EAAE;IAC5E,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAoB,EAAE;IACtD,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5C,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/hooks/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,WAA4B,EAAW,EAAE;IAC5E,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAgC,EAAE;IAClE,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5C,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC,CAAC"}
@@ -4,7 +4,7 @@ import { useOwnCapabilities } from '../hooks';
4
4
  export const Restricted = ({ canRequestOnly, hasPermissionsOnly, requiredGrants, requireAll = true, children, }) => {
5
5
  const call = useCall();
6
6
  const ownCapabilities = useOwnCapabilities();
7
- const hasPermissions = requiredGrants[requireAll ? 'every' : 'some']((capability) => ownCapabilities.includes(capability));
7
+ const hasPermissions = requiredGrants[requireAll ? 'every' : 'some']((capability) => ownCapabilities === null || ownCapabilities === void 0 ? void 0 : ownCapabilities.includes(capability));
8
8
  if (hasPermissionsOnly)
9
9
  return hasPermissions ? _jsx(_Fragment, { children: children }) : null;
10
10
  const canRequest = requiredGrants.some((capability) => !!call && call.permissionsContext.canRequest(capability));
@@ -1 +1 @@
1
- {"version":3,"file":"Restricted.js","sourceRoot":"","sources":["../../../src/wrappers/Restricted.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAsB9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,UAAU,GAAG,IAAI,EACjB,QAAQ,GACQ,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAClE,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CACrD,CAAC;IAEF,IAAI,kBAAkB;QAAE,OAAO,cAAc,CAAC,CAAC,CAAC,4BAAG,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CACpC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CACzE,CAAC;IAEF,IAAI,cAAc;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,4BAAG,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,IAAI,cAAc,IAAI,UAAU;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IAEzD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"Restricted.js","sourceRoot":"","sources":["../../../src/wrappers/Restricted.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAsB9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,UAAU,GAAG,IAAI,EACjB,QAAQ,GACQ,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAClE,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,UAAU,CAAC,CACtD,CAAC;IAEF,IAAI,kBAAkB;QAAE,OAAO,cAAc,CAAC,CAAC,CAAC,4BAAG,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CACpC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CACzE,CAAC;IAEF,IAAI,cAAc;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,4BAAG,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,IAAI,cAAc,IAAI,UAAU;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IAEzD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/video-react-bindings",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -24,12 +24,12 @@
24
24
  },
25
25
  "peerDependencies": {
26
26
  "@stream-io/i18n": "^0.1.1",
27
- "@stream-io/video-client": "^0.3.1",
27
+ "@stream-io/video-client": "^0.3.3",
28
28
  "react": ">=17.0.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@stream-io/i18n": "^0.1.1",
32
- "@stream-io/video-client": "^0.3.1",
32
+ "@stream-io/video-client": "^0.3.3",
33
33
  "@types/react": "^18.0.26",
34
34
  "@types/rimraf": "^3.0.2",
35
35
  "react": "^18.2.0",
@@ -56,11 +56,13 @@ export const useCreateI18n = ({
56
56
  );
57
57
 
58
58
  useEffect(() => {
59
- if (i18n.isInitialized && language && i18n?.currentLanguage !== language) {
60
- i18n.changeLanguage(language);
61
- } else if (!i18n.isInitialized) {
62
- if (!language) i18n.changeLanguage();
59
+ const { isInitialized } = i18n;
60
+ if (!isInitialized) {
63
61
  i18n.init().then((_i18n) => setTranslationFn(() => _i18n.i18nInstance.t));
62
+ return;
63
+ }
64
+ if (language && i18n?.currentLanguage !== language) {
65
+ i18n.changeLanguage(language);
64
66
  }
65
67
  }, [i18n, i18nInstance, language, translationsOverrides]);
66
68
 
@@ -1,11 +1,14 @@
1
1
  import { useMemo } from 'react';
2
2
  import {
3
+ Call,
4
+ CallState,
5
+ CameraManagerState,
6
+ Comparator,
7
+ MicrophoneManagerState,
3
8
  CallIngressResponse,
4
9
  CallSessionResponse,
5
10
  CallSettingsResponse,
6
- CallState,
7
11
  CallStatsReport,
8
- Comparator,
9
12
  EgressResponse,
10
13
  MemberResponse,
11
14
  StreamVideoParticipant,
@@ -310,3 +313,50 @@ export const useAnonymousParticipantCount = () => {
310
313
  const { anonymousParticipantCount$ } = useCallState();
311
314
  return useObservableValue(anonymousParticipantCount$);
312
315
  };
316
+
317
+ /**
318
+ * Returns the camera state of the current call.
319
+ *
320
+ * @category Camera Manager State
321
+ *
322
+ */
323
+ export const useCameraState = () => {
324
+ const call = useCall();
325
+
326
+ const {
327
+ camera = {
328
+ state: new CameraManagerState(),
329
+ },
330
+ } = call as Call;
331
+
332
+ const status = useObservableValue(camera.state.status$);
333
+ const direction = useObservableValue(camera.state.direction$);
334
+
335
+ return {
336
+ status,
337
+ direction,
338
+ };
339
+ };
340
+
341
+ /**
342
+ * Returns the microphone state of the current call.
343
+ *
344
+ * @category Microphone Manager State
345
+ */
346
+ export const useMicrophoneState = () => {
347
+ const call = useCall();
348
+
349
+ const {
350
+ microphone = {
351
+ state: new MicrophoneManagerState(),
352
+ },
353
+ } = call as Call;
354
+
355
+ const status = useObservableValue(microphone.state.status$);
356
+ const selectedDevice = useObservableValue(microphone.state.selectedDevice$);
357
+
358
+ return {
359
+ status,
360
+ selectedDevice,
361
+ };
362
+ };
@@ -11,7 +11,7 @@ import { useObservableValue } from './useObservableValue';
11
11
  */
12
12
  export const useHasPermissions = (...permissions: OwnCapability[]): boolean => {
13
13
  const capabilities = useOwnCapabilities();
14
- return permissions.every((permission) => capabilities.includes(permission));
14
+ return permissions.every((permission) => capabilities?.includes(permission));
15
15
  };
16
16
 
17
17
  /**
@@ -19,7 +19,7 @@ export const useHasPermissions = (...permissions: OwnCapability[]): boolean => {
19
19
  *
20
20
  * @category Call State
21
21
  */
22
- export const useOwnCapabilities = (): OwnCapability[] => {
22
+ export const useOwnCapabilities = (): OwnCapability[] | undefined => {
23
23
  const { ownCapabilities$ } = useCallState();
24
24
  return useObservableValue(ownCapabilities$);
25
25
  };
@@ -34,7 +34,7 @@ export const Restricted = ({
34
34
  const call = useCall();
35
35
  const ownCapabilities = useOwnCapabilities();
36
36
  const hasPermissions = requiredGrants[requireAll ? 'every' : 'some'](
37
- (capability) => ownCapabilities.includes(capability),
37
+ (capability) => ownCapabilities?.includes(capability),
38
38
  );
39
39
 
40
40
  if (hasPermissionsOnly) return hasPermissions ? <>{children}</> : null;