;
export type Theme = ColorType;
diff --git a/packages/react-sdk/CHANGELOG.md b/packages/react-sdk/CHANGELOG.md
index 14a2f499f1..8a17f925e0 100644
--- a/packages/react-sdk/CHANGELOG.md
+++ b/packages/react-sdk/CHANGELOG.md
@@ -2,6 +2,19 @@
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
+## [1.6.6](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.5...@stream-io/video-react-sdk-1.6.6) (2024-10-14)
+
+
+### Bug Fixes
+
+* check for user capabilities before rendering call control buttons ([#1513](https://github.com/GetStream/stream-video-js/issues/1513)) ([9b11219](https://github.com/GetStream/stream-video-js/commit/9b1121966d3e3f7610fbbca386b8837563203e86))
+
+## [1.6.5](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.4...@stream-io/video-react-sdk-1.6.5) (2024-10-10)
+
+### Dependency Updates
+
+* `@stream-io/video-client` updated to version `1.8.3`
+* `@stream-io/video-react-bindings` updated to version `1.1.3`
## [1.6.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.3...@stream-io/video-react-sdk-1.6.4) (2024-10-10)
### Dependency Updates
diff --git a/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx b/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx
index da40abbe38..202f2c143e 100644
--- a/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx
+++ b/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx
@@ -71,6 +71,25 @@ const apiKey = 'my-stream-api-key';
const client = new StreamVideoClient({ apiKey, user });
```
+Anonymous users don't establish an active web socket connection, therefore they won't receive any events. They are just able to watch a livestream or join a call.
+
+The token for an anonymous user should contain the `call_cids` field, which is an array of the call `cid`'s that the user is allowed to join.
+
+Here's an example JWT token payload for an anonymous user:
+
+```ts
+{
+ "iss": "@stream-io/dashboard",
+ "iat": 1726406693,
+ "exp": 1726493093,
+ "user_id": "!anon",
+ "role": "viewer",
+ "call_cids": [
+ "livestream:123"
+ ]
+}
+```
+
## Client options
### `token` or `tokenProvider`
diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json
index 6c6172d6a7..8b7a05eb35 100644
--- a/packages/react-sdk/package.json
+++ b/packages/react-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@stream-io/video-react-sdk",
- "version": "1.6.4",
+ "version": "1.6.6",
"packageManager": "yarn@3.2.4",
"main": "./dist/index.cjs.js",
"module": "./dist/index.es.js",
diff --git a/packages/react-sdk/src/components/CallControls/CallControls.tsx b/packages/react-sdk/src/components/CallControls/CallControls.tsx
index e897dfa6d9..b7a09e1175 100644
--- a/packages/react-sdk/src/components/CallControls/CallControls.tsx
+++ b/packages/react-sdk/src/components/CallControls/CallControls.tsx
@@ -1,3 +1,5 @@
+import { OwnCapability } from '@stream-io/video-client';
+import { Restricted } from '@stream-io/video-react-bindings';
import { SpeakingWhileMutedNotification } from '../Notification';
import { RecordCallButton } from './RecordCallButton';
import { ReactionsButton } from './ReactionsButton';
@@ -12,13 +14,28 @@ export type CallControlsProps = {
export const CallControls = ({ onLeave }: CallControlsProps) => (
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
diff --git a/sample-apps/react-native/dogfood/ios/Podfile.lock b/sample-apps/react-native/dogfood/ios/Podfile.lock
index 348033fe71..fa7ea9fdbd 100644
--- a/sample-apps/react-native/dogfood/ios/Podfile.lock
+++ b/sample-apps/react-native/dogfood/ios/Podfile.lock
@@ -1148,7 +1148,7 @@ PODS:
- stream-react-native-webrtc (118.1.0):
- JitsiWebRTC (~> 118.0.0)
- React-Core
- - stream-video-react-native (1.1.3):
+ - stream-video-react-native (1.1.1):
- glog
- RCT-Folly (= 2022.05.16.00)
- React-Core
@@ -1479,7 +1479,7 @@ SPEC CHECKSUMS:
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
stream-io-video-filters-react-native: 8c345e6adf5164646696d45f9962c4199b2fe3b9
stream-react-native-webrtc: 4ccf61161f77c57b9aa45f78cb7f69b7d91f3e9f
- stream-video-react-native: 363520e27b8cf267eb824cb32d10ea7f09bf09e8
+ stream-video-react-native: ff287d6bc897fffdf7b07ed3828e53bbf74bf576
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312
diff --git a/sample-apps/react-native/dogfood/package.json b/sample-apps/react-native/dogfood/package.json
index 820bfd044e..4fd56a9881 100644
--- a/sample-apps/react-native/dogfood/package.json
+++ b/sample-apps/react-native/dogfood/package.json
@@ -1,6 +1,6 @@
{
"name": "@stream-io/video-react-native-dogfood",
- "version": "4.3.9",
+ "version": "4.3.11",
"private": true,
"scripts": {
"android": "react-native run-android",
diff --git a/sample-apps/react-native/dogfood/src/assets/Audio.tsx b/sample-apps/react-native/dogfood/src/assets/Audio.tsx
new file mode 100644
index 0000000000..ae5c26767f
--- /dev/null
+++ b/sample-apps/react-native/dogfood/src/assets/Audio.tsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import { Svg, Path } from 'react-native-svg';
+import { ColorValue } from 'react-native/types';
+
+type Props = {
+ color: ColorValue;
+ size: number;
+};
+
+const Audio = ({ color, size }: Props) => (
+
+);
+
+export default Audio;
diff --git a/sample-apps/react-native/dogfood/src/assets/Chat.tsx b/sample-apps/react-native/dogfood/src/assets/Chat.tsx
index adc7b30f55..a6da4abe45 100644
--- a/sample-apps/react-native/dogfood/src/assets/Chat.tsx
+++ b/sample-apps/react-native/dogfood/src/assets/Chat.tsx
@@ -4,13 +4,16 @@ import { ColorValue } from 'react-native/types';
type Props = {
color: ColorValue;
+ size: number;
};
-export const Chat = ({ color }: Props) => (
-