Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
379ca3a
initial improvemnts of react uikit overview and components
PrajwalDhuleCC Feb 11, 2026
c130326
Improvement of overview, react-conversation, react-js-integration, re…
aanshisingh-cometchat Feb 12, 2026
b1827a2
improve the documentation
aanshisingh-cometchat Feb 13, 2026
db16dce
improve the sequence
aanshisingh-cometchat Feb 13, 2026
70bff0c
improve the theme folder documentation
aanshisingh-cometchat Feb 16, 2026
891c194
refactor: improve the uikit doc inorder to make it ai agent readable
aanshisingh-cometchat Feb 17, 2026
5c8a547
Update overview.mdx
swapnil-cometchat Feb 18, 2026
634512a
Update overview.mdx
swapnil-cometchat Feb 18, 2026
7a10731
fixes errors
swapnil-cometchat Feb 18, 2026
447886f
Merge branch 'main' into docs/react-ui-kit-v6
swapnil-cometchat Feb 18, 2026
534e8c1
Update react-js-integration.mdx
swapnil-cometchat Feb 18, 2026
cc1a2e3
Update react-conversation.mdx
swapnil-cometchat Feb 18, 2026
9a353a3
Update react-conversation.mdx
swapnil-cometchat Feb 18, 2026
9e3b877
run app via respective framework
swapnil-cometchat Feb 18, 2026
3d22bea
Update react-one-to-one-chat.mdx
swapnil-cometchat Feb 18, 2026
b60f772
Update react-tab-based-chat.mdx
swapnil-cometchat Feb 18, 2026
76bd12a
updates highlights and lines
swapnil-cometchat Feb 18, 2026
d499e94
Update next-one-to-one-chat.mdx
swapnil-cometchat Feb 18, 2026
09f573c
Update next-tab-based-chat.mdx
swapnil-cometchat Feb 18, 2026
df669bc
Update react-router-integration.mdx
swapnil-cometchat Feb 18, 2026
a65d00f
Update react-router-conversation.mdx
swapnil-cometchat Feb 18, 2026
9988980
Update react-router-one-to-one-chat.mdx
swapnil-cometchat Feb 18, 2026
79c568f
Update react-router-tab-based-chat.mdx
swapnil-cometchat Feb 18, 2026
63b2b10
removes <Note> **Available via:**
swapnil-cometchat Feb 18, 2026
ea70bd7
Update ai-features.mdx
swapnil-cometchat Feb 18, 2026
fa05441
Update ai-features.mdx
swapnil-cometchat Feb 18, 2026
dcffae9
Update extensions.mdx
swapnil-cometchat Feb 18, 2026
7cc4b70
Update ai-features.mdx
swapnil-cometchat Feb 18, 2026
b9d98d3
Update theme.mdx
swapnil-cometchat Feb 18, 2026
fddfa82
Update theme.mdx
swapnil-cometchat Feb 18, 2026
dec15c0
Update color-resources.mdx
swapnil-cometchat Feb 19, 2026
d1aadb7
Update conversations.mdx
swapnil-cometchat Feb 19, 2026
7812825
Update users.mdx
swapnil-cometchat Feb 19, 2026
21e2518
Update users.mdx
swapnil-cometchat Feb 19, 2026
8613f20
Update users.mdx
swapnil-cometchat Feb 19, 2026
762449d
Update groups.mdx
swapnil-cometchat Feb 19, 2026
0197365
Update groups.mdx
swapnil-cometchat Feb 19, 2026
440240f
Update groups.mdx
swapnil-cometchat Feb 19, 2026
868045e
Update users.mdx
swapnil-cometchat Feb 19, 2026
09b7f61
Update group-members.mdx
swapnil-cometchat Feb 19, 2026
a10b3eb
Update group-members.mdx
swapnil-cometchat Feb 19, 2026
4e29a17
Update group-members.mdx
swapnil-cometchat Feb 19, 2026
64af67d
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
493e40a
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
86e9f42
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
a64e887
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
51578f5
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
8cb2e0e
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
9e24232
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
a040c8a
Update message-list.mdx
swapnil-cometchat Feb 19, 2026
8023cd3
Update message-header.mdx
swapnil-cometchat Feb 19, 2026
af6d8d1
Update message-list.mdx
swapnil-cometchat Feb 19, 2026
e690982
adds line numbers
swapnil-cometchat Feb 19, 2026
5f214e3
Update message-list.mdx
swapnil-cometchat Feb 19, 2026
504f307
updates the #####
swapnil-cometchat Feb 19, 2026
82a9cbf
updates css
swapnil-cometchat Feb 19, 2026
e635b40
Update outgoing-call.mdx
swapnil-cometchat Feb 19, 2026
82e44b4
Update methods.mdx
swapnil-cometchat Feb 19, 2026
1fe008e
Update events.mdx
swapnil-cometchat Feb 19, 2026
44592f8
fixes pages for features and theming
swapnil-cometchat Feb 22, 2026
84e400f
components
swapnil-cometchat Feb 22, 2026
e8ae82c
updates components for agents
swapnil-cometchat Feb 23, 2026
ca631dc
Update core-features.mdx
swapnil-cometchat Feb 23, 2026
7707474
Revert "updates components for agents"
swapnil-cometchat Feb 23, 2026
999f94b
Revert "Update core-features.mdx"
swapnil-cometchat Feb 23, 2026
965bb71
Revert "fixes pages for features and theming"
swapnil-cometchat Feb 23, 2026
f79eb21
Update .gitignore
swapnil-cometchat Feb 24, 2026
8973bc3
Update extensions.mdx
swapnil-cometchat Feb 24, 2026
26cd64e
Update core-features.mdx
swapnil-cometchat Feb 24, 2026
4f57069
Update ai-features.mdx
swapnil-cometchat Feb 24, 2026
6090679
Update call-features.mdx
swapnil-cometchat Feb 24, 2026
9a6e7ba
Update overview.mdx
swapnil-cometchat Feb 25, 2026
b44b36e
adds AI Agent Component Spec
swapnil-cometchat Feb 25, 2026
bb5de77
Update message-composer.mdx
swapnil-cometchat Feb 25, 2026
a1b6e6b
Update message-bubble-styling.mdx
swapnil-cometchat Feb 25, 2026
f66307e
Update message-bubble-styling.mdx
swapnil-cometchat Feb 25, 2026
519755b
Update message-bubble-styling.mdx
swapnil-cometchat Feb 25, 2026
7109292
Update core-features.mdx
swapnil-cometchat Feb 25, 2026
64afaf3
Update components-overview.mdx
swapnil-cometchat Feb 25, 2026
1433f76
Removed ## Prerequisites, ## Quick start, and ## Core concepts from t…
swapnil-cometchat Feb 25, 2026
25c4e41
updates What this does:
swapnil-cometchat Feb 25, 2026
cb0923c
Update components-overview.mdx
swapnil-cometchat Feb 25, 2026
b5959f5
Update components-overview.mdx
swapnil-cometchat Feb 25, 2026
b15a7b8
updates
swapnil-cometchat Feb 25, 2026
e2ccd93
restores components
swapnil-cometchat Feb 25, 2026
2fb525a
Updates the components to meet agentic world specs
swapnil-cometchat Feb 26, 2026
762d027
Update components-overview.mdx
swapnil-cometchat Feb 26, 2026
9b6c398
Update conversations.mdx
swapnil-cometchat Feb 26, 2026
9354a18
Update conversations.mdx
swapnil-cometchat Feb 26, 2026
b3fed53
Update conversations.mdx
swapnil-cometchat Feb 26, 2026
f4250cd
Update conversations.mdx
swapnil-cometchat Feb 26, 2026
9799757
Update conversations.mdx
swapnil-cometchat Feb 26, 2026
3090a67
Update users.mdx
swapnil-cometchat Feb 26, 2026
51e5a7a
Update groups.mdx
swapnil-cometchat Feb 26, 2026
e36c809
Update group-members.mdx
swapnil-cometchat Feb 26, 2026
2ab9199
Update message-header.mdx
swapnil-cometchat Feb 26, 2026
6d460d4
Update message-list.mdx
swapnil-cometchat Feb 26, 2026
beebf7e
Update message-composer.mdx
swapnil-cometchat Feb 26, 2026
d8537e3
Update message-composer.mdx
swapnil-cometchat Feb 26, 2026
04f2af2
Update message-template.mdx
swapnil-cometchat Feb 26, 2026
2a0785e
Update thread-header.mdx
swapnil-cometchat Feb 26, 2026
f508288
Update incoming-call.mdx
swapnil-cometchat Feb 26, 2026
25dae50
Update outgoing-call.mdx
swapnil-cometchat Feb 26, 2026
3c92977
Update call-buttons.mdx
swapnil-cometchat Feb 26, 2026
0b77954
Update call-logs.mdx
swapnil-cometchat Feb 26, 2026
4e2f1cb
Update call-logs.mdx
swapnil-cometchat Feb 26, 2026
5b9f4fa
Update search.mdx
swapnil-cometchat Feb 26, 2026
65b2932
Update ai-assistant-chat.mdx
swapnil-cometchat Feb 26, 2026
e5f4f7a
Update components-overview.mdx
swapnil-cometchat Feb 26, 2026
19d3628
rewamp Theming
swapnil-cometchat Feb 26, 2026
ee5f8bd
Update users.mdx
swapnil-cometchat Feb 26, 2026
1406b47
Update groups.mdx
swapnil-cometchat Feb 26, 2026
2c0d1bb
Update thread-header.mdx
swapnil-cometchat Feb 26, 2026
2b4c1a5
Update search.mdx
swapnil-cometchat Feb 26, 2026
01c4d6f
Update message-list.mdx
swapnil-cometchat Feb 26, 2026
ec08779
Update message-header.mdx
swapnil-cometchat Feb 26, 2026
d9bdaea
Update message-composer.mdx
swapnil-cometchat Feb 26, 2026
d7f26e4
Update incoming-call.mdx
swapnil-cometchat Feb 26, 2026
a2a6014
Update ai-assistant-chat.mdx
swapnil-cometchat Feb 26, 2026
e827252
Update call-buttons.mdx
swapnil-cometchat Feb 26, 2026
633d05f
updates theming
swapnil-cometchat Feb 26, 2026
b88f3a8
updates events and methods
swapnil-cometchat Feb 26, 2026
13f6f24
Update conversations.mdx
swapnil-cometchat Feb 26, 2026
72fe6d0
initial SOTA version
swapnil-cometchat Feb 27, 2026
da4d9dc
Update overview.mdx
swapnil-cometchat Feb 27, 2026
e1fced3
Troubleshooting
swapnil-cometchat Feb 27, 2026
fbf4dc4
react docs
swapnil-cometchat Feb 27, 2026
ef0497e
Update astro-tab-based-chat.mdx
swapnil-cometchat Feb 27, 2026
7da4a49
updates components
swapnil-cometchat Feb 27, 2026
9752c53
fix
swapnil-cometchat Feb 27, 2026
7e38d4f
updates overview
swapnil-cometchat Feb 27, 2026
13c46ff
Update react-js-integration.mdx
swapnil-cometchat Feb 27, 2026
ac0ca87
Update overview.mdx
swapnil-cometchat Feb 27, 2026
da7ab48
React StrictMode note
swapnil-cometchat Feb 27, 2026
1f9057a
Update react-js-integration.mdx
swapnil-cometchat Feb 27, 2026
6d4f367
Update react-js-integration.mdx
swapnil-cometchat Feb 27, 2026
58da8db
Update next-js-integration.mdx
swapnil-cometchat Feb 27, 2026
e1ae657
mintlify doc component update
swapnil-cometchat Feb 27, 2026
48a6677
Update astro-integration.mdx
swapnil-cometchat Feb 27, 2026
d700a7b
updates mintlify components
swapnil-cometchat Feb 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.DS_Store

.kiro/
/cometchat-uikit-react-6
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,7 @@
"ui-kit/react/property-changes"
]
},
"ui-kit/react/troubleshooting",
"ui-kit/react/link/sample",
"ui-kit/react/link/changelog",
"ui-kit/react/link/figma"
Expand Down
38 changes: 19 additions & 19 deletions fundamentals/extensions-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,32 @@ Extensions pickup where our core leaves. They help extend the functionality of C

Extensions that help improve the user messaging experience. *Recommended for most apps.*

[Pin message](/fundamentals/pin-message)\
[Bitly](/fundamentals/bitly)\
[Avatars](/fundamentals/avatars)\
[Message shortcuts](/fundamentals/message-shortcuts)\
[Link Preview](/fundamentals/link-preview)\
[Message shortcuts](/fundamentals/message-shortcuts)\
[Pin message](/fundamentals/pin-message)\
[Rich Media Preview](/fundamentals/rich-media-preview)\
[Save message](/fundamentals/save-message)\
[Thumbnail Generation](/fundamentals/thumbnail-generation)\
[TinyURL](/fundamentals/tinyurl)\
[Voice Transcription](/fundamentals/voice-transcription)
[Voice Transcription](/fundamentals/voice-transcription)\
[Avatars](/fundamentals/avatars)

### User Engagement

Extensions that help increase user engagement. *Recommended for advanced apps.*

[Email replies](/fundamentals/email-replies)\
[Polls](/fundamentals/polls)\
[Giphy](/fundamentals/giphy)\
[Mentions](/fundamentals/mentions)\
[Message Translation](/fundamentals/message-translation)\
[Reactions](/fundamentals/reactions)\
[Smart Reply](/fundamentals/smart-replies)\
[Polls](/fundamentals/polls)\
[Reminders](/fundamentals/reminders)\
[Stickers](/fundamentals/stickers)\
[Stipop](/fundamentals/stickers-stipop)\
[Tenor](/fundamentals/tenor)\
[Reminders](/fundamentals/reminders)\
[Email replies](/fundamentals/email-replies)\
[Mentions](/fundamentals/mentions)\
[Reactions](/fundamentals/reactions)\
[Smart Reply](/fundamentals/smart-replies)\
[Live Streaming by api.video](/fundamentals/video-broadcasting)

### Collaboration
Expand All @@ -46,12 +46,19 @@ Extensions that help with collaboration. *Recommended for advanced apps.*
[Collaborative Whiteboard](/fundamentals/collaborative-whiteboard)\
[Collaborative Document](/fundamentals/collaborative-document)

### Security

*Extensions that help you to build adding extra security to your apps.* *Recommended for live streaming and event apps.*

[Disappearing messages](/fundamentals/disappearing-messages)\
[End to End Encryption](/fundamentals/end-to-end-encryption)

### Customer Support

Extensions that help you add support to your app. *Recommended for advanced apps.*

[Intercom](/fundamentals/intercom)\
[Chatwoot](/fundamentals/chatwoot)
[Chatwoot](/fundamentals/chatwoot)\
[Intercom](/fundamentals/intercom)

### Notifications

Expand All @@ -66,10 +73,3 @@ Extensions that help alert users of new messages. *Recommended for all apps.*
*Extensions that help you to build a safe messaging environment.* *Recommended for live streaming and event apps.*

[Legacy Moderation Extensions](/moderation/legacy-extensions)

### Security

*Extensions that help you to build adding extra security to your apps.* *Recommended for live streaming and event apps.*

[Disappearing messages](/fundamentals/disappearing-messages)\
[End to End Encryption](/fundamentals/end-to-end-encryption)
66 changes: 60 additions & 6 deletions sdk/javascript/video-view-customisation.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
---
title: "Video View Customisation"
description: "Customize the main video container in CometChat calls — aspect ratio, full screen button, name label, and network label positioning."
---


<Info>
**Quick Reference**
- **Class:** `CometChat.MainVideoContainerSetting`
- **Apply via:** `CallSettingsBuilder.setMainVideoContainerSetting(videoSettings)`
- **Customizable elements:** Aspect ratio, full screen button, name label, network label
- **Position constants:** `POSITION_TOP_LEFT`, `POSITION_TOP_RIGHT`, `POSITION_BOTTOM_LEFT`, `POSITION_BOTTOM_RIGHT`
- **Requires:** [Default Calling](/sdk/javascript/default-call) or [Direct Calling](/sdk/javascript/direct-call) setup
</Info>

This section will guide you to customise the main video container.

Expand All @@ -26,16 +34,62 @@ The `MainVideoContainerSetting` Class is the required in case you want to custom
Example:

<Tabs>
<Tab title="TypeScript">
```typescript
<Tab title="JavaScript">
```javascript
let videoSettings = new CometChat.MainVideoContainerSetting();

videoSettings.setMainVideoAspectRatio(CometChat.CallSettings.ASPECT_RATIO_CONTAIN);
videoSettings.setMainVideoAspectRatio(CometChat.CallSettings.ASPECT_RATIO_CONTAIN);
videoSettings.setFullScreenButtonParams(CometChat.CallSettings.POSITION_BOTTOM_RIGHT, true);
videoSettings.setNameLabelParams(CometChat.CallSettings.POSITION_BOTTOM_LEFT, true, "rgba(27, 27, 27, 0.4)");
videoSettings.setNetworkLabelParams(CometChat.CallSettings.POSITION_BOTTOM_RIGHT, true);
videoSettings.setNetworkLabelParams(CometChat.CallSettings.POSITION_BOTTOM_RIGHT, true);
```

</Tab>
<Tab title="TypeScript">
```typescript
let videoSettings: CometChat.MainVideoContainerSetting = new CometChat.MainVideoContainerSetting();

videoSettings.setMainVideoAspectRatio(CometChat.CallSettings.ASPECT_RATIO_CONTAIN);
videoSettings.setFullScreenButtonParams(CometChat.CallSettings.POSITION_BOTTOM_RIGHT, true);
videoSettings.setNameLabelParams(CometChat.CallSettings.POSITION_BOTTOM_LEFT, true, "rgba(27, 27, 27, 0.4)");
videoSettings.setNetworkLabelParams(CometChat.CallSettings.POSITION_BOTTOM_RIGHT, true);
```
</Tab>
</Tabs>

<AccordionGroup>
<Accordion title="Best Practices">

| Practice | Details |
| --- | --- |
| Aspect ratio choice | Use `ASPECT_RATIO_CONTAIN` to show the full video without cropping; use `ASPECT_RATIO_COVER` for a full-bleed look that may crop edges |
| Label positioning | Avoid placing the name label and network label in the same corner to prevent overlap |
| Full screen button | Keep the full screen button visible for better UX; only hide it if your app provides its own full screen toggle |

</Accordion>
<Accordion title="Troubleshooting">

| Symptom | Cause | Fix |
| --- | --- | --- |
| Video settings not applied | `setMainVideoContainerSetting()` not called on `CallSettingsBuilder` | Pass the `MainVideoContainerSetting` object to `CallSettingsBuilder.setMainVideoContainerSetting()` before calling `startCall()` |
| Labels overlapping | Multiple labels positioned in the same corner | Assign different position constants to each label |
| Full screen button missing | Visibility set to `false` | Set the second parameter of `setFullScreenButtonParams()` to `true` |

</Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
<Card title="Default Calling" icon="phone" href="/sdk/javascript/default-call">
Implement default audio/video calling.
</Card>
<Card title="Direct Calling" icon="video" href="/sdk/javascript/direct-call">
Implement direct calling without call events.
</Card>
<Card title="Virtual Background" icon="image" href="/sdk/javascript/virtual-background">
Add virtual background and blur effects.
</Card>
<Card title="Recording" icon="circle-dot" href="/sdk/javascript/recording">
Record calls for playback.
</Card>
</CardGroup>
69 changes: 53 additions & 16 deletions sdk/javascript/virtual-background.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
---
title: "Virtual Background"
description: "Implement virtual background features in CometChat video calls — background blur, custom images, and enforced backgrounds using the JavaScript SDK."
---


<Info>
**Quick Reference**
- **Settings class:** `CometChat.VirtualBackground`
- **Apply via:** `CallSettingsBuilder.setVirtualBackground(virtualBackground)`
- **Toggle UI:** `CallSettingsBuilder.showVirtualBackgroundSetting(true|false)`
- **Runtime control:** `CometChat.CallController.getInstance()` → `setBackgroundBlur()`, `setBackgroundImage()`, `openVirtualBackground()`
- **Requires:** [Default Calling](/sdk/javascript/default-call) or [Direct Calling](/sdk/javascript/direct-call) setup
</Info>

This section will guide you to implement virtual background feature in video calls.

Expand Down Expand Up @@ -35,21 +43,17 @@ You can use the `openVirtualBackground()` method to open the virtual background

<Tabs>
<Tab title="JavaScript">
```js
```javascript
let callController = CometChat.CallController.getInstance();
callController.openVirtualBackground();
```

</Tab>

<Tab title="TypeScript">
```typescript
let callController: CometChat.CallController = CometChat.CallController.getInstance();
callController.openVirtualBackground();
```

</Tab>

</Tabs>

### Set Background Blur
Expand All @@ -58,23 +62,19 @@ You can use the `setBackgroundBlur()` method to apply background blur on the vid

<Tabs>
<Tab title="JavaScript">
```js
```javascript
let callController = CometChat.CallController.getInstance();
let blurLevel = 1;
callController.setBackgroundBlur(blurLevel);
```

</Tab>

<Tab title="TypeScript">
```typescript
let callController: CometChat.CallController = CometChat.CallController.getInstance();
let blurLevel: number = 1;
callController.setBackgroundBlur(blurLevel);
```

</Tab>

</Tabs>

### Set Background Image
Expand All @@ -83,23 +83,19 @@ You can use the `setBackgroundImage()`method to set the background image. This m

<Tabs>
<Tab title="JavaScript">
```js
```javascript
let callController = CometChat.CallController.getInstance();
let imageURL = "URL_OF_BACKGROUND_IMAGE";
callController.setBackgroundImage(imageURL);
```

</Tab>

<Tab title="TypeScript">
```typescript
let callController: CometChat.CallController = CometChat.CallController.getInstance();
let imageURL: string = "URL_OF_BACKGROUND_IMAGE";
callController.setBackgroundImage(imageURL);
```

</Tab>

</Tabs>

## Virtual Background Settings
Expand All @@ -114,3 +110,44 @@ The `VirtualBackground` Class is the required in case you want to change how the
| `setImages(images: Array<String>)` | This method allows developer to add their custom background image which the end user can choose. |
| `enforceBackgroundBlur(enforceBackgroundBlur: number)` | This method starts the call with background blurred. To blur the background you need to pass an integer value between 1-99 which decides the blur level. **Default = 0** |
| `enforceBackgroundImage(enforceBackgroundImage: string)` | This methods starts the call with the provided background image. |

<AccordionGroup>
<Accordion title="Best Practices">

| Practice | Details |
| --- | --- |
| Blur level range | Use values between 1-99 for `enforceBackgroundBlur()`. Higher values produce stronger blur. A value of 0 disables blur |
| Image hosting | Host background images on a CDN for fast loading. Large images may cause lag when applied |
| Enforce vs allow | Use `enforceBackgroundBlur()` or `enforceBackgroundImage()` when you want a mandatory background (e.g., for privacy). Use `allowBackgroundBlur()` and `allowUserImages()` to let users choose |
| Custom buttons | Use `CallController` methods (`setBackgroundBlur`, `setBackgroundImage`, `openVirtualBackground`) when building a custom UI instead of the default CometChat menu |

</Accordion>
<Accordion title="Troubleshooting">

| Symptom | Cause | Fix |
| --- | --- | --- |
| Virtual background option not visible | `showVirtualBackgroundSetting(false)` was set | Set `showVirtualBackgroundSetting(true)` in `CallSettingsBuilder` |
| Background blur not applied on call start | `enforceBackgroundBlur()` not set or set to 0 | Pass a value between 1-99 to `enforceBackgroundBlur()` |
| Custom images not appearing | `setImages()` not called or empty array passed | Pass a non-empty array of valid image URLs to `setImages()` |
| `CallController.getInstance()` returns null | Called before the call has started | Only use `CallController` methods after `startCall()` has been invoked |
| User can't upload their own images | `allowUserImages(false)` was set | Set `allowUserImages(true)` in the `VirtualBackground` configuration |

</Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
<Card title="Video View Customisation" icon="sliders" href="/sdk/javascript/video-view-customisation">
Customize the main video container layout.
</Card>
<Card title="Recording" icon="circle-dot" href="/sdk/javascript/recording">
Record calls for playback.
</Card>
<Card title="Presenter Mode" icon="presentation-screen" href="/sdk/javascript/presenter-mode">
Enable screen sharing and presenter mode.
</Card>
<Card title="Custom CSS" icon="paintbrush" href="/sdk/javascript/custom-css">
Customize the calling UI appearance.
</Card>
</CardGroup>
Loading