> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-rn-guide-message-privately.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Customize UI Kit

> Customize UI Kit — CometChat documentation.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b-docs-rn-guide-message-privately/TO10Bmu50bb5qPTI/images/2bcfda5e-1623199957-c82f142ae375c2899452833bde0a3875.jpg?fit=max&auto=format&n=TO10Bmu50bb5qPTI&q=85&s=d026840fc738bb517c76f4cbf93b8885" width="2195" height="984" data-path="images/2bcfda5e-1623199957-c82f142ae375c2899452833bde0a3875.jpg" />
</Frame>

This guide helps you to customize, modify, and enable/disable features present in UIKit.

<Tip>
  CometChat SDK & UI Kit both need to be configured before starting the customization in UI Kit.
</Tip>

***

To Modify and customize UI Kit, you need to refer to the `UIKitSettings` class present in the UI Kit Library. You will be easily able to modify the color, enable/disable some of the features which you won't require in your app.

<Warning>
  * UI Kit Settings must be called before launching any UI Screen or UI Unified. By default, all settings will be enabled.

  * For advanced level customization, you can modify the source code of the library as per your requirement.
</Warning>

### **Color Settings**

| Description           | Code Snippet                           | Settings                                            |
| --------------------- | -------------------------------------- | --------------------------------------------------- |
| Modify primary colour | `UIKitSettings.setColor(String color)` | Requires Hex value of color as String Ex: "#F3F3F3" |

***

### **Tab bar settings**

| Description                    | Code Snippet                        | Settings                                               |
| ------------------------------ | ----------------------------------- | ------------------------------------------------------ |
| Hide/Show recents chats tab    | `UIKitSettings.conversations(true)` | You can show it using `true` or hide it using `false`. |
| Hide/Show calls tab            | `UIKitSettingscalls(true)`          | You can show it using `true` or hide it using `false`. |
| Hide/Show users tab            | `UIKitSettings.users(true)`         | You can show it using `true` or hide it using `false`. |
| Hide/Show groups tab           | `UIKitSettings.groups(true)`        | You can show it using `true` or hide it using `false`. |
| Hide/Show user information tab | `UIKitSettings.userSettings(true)`  | You can show it using `true` or hide it using `false`. |

***

### **Call settings**

| Description                     | Code Snippet                              | Settings                                                    |
| ------------------------------- | ----------------------------------------- | ----------------------------------------------------------- |
| Enable audio call for user      | `UIKitSettings.userAudioCall(true)`       | You can enable it using `true` or disable it using `false`. |
| Enable video call for user      | `UIKitSettings.userVideoCall(true)`       | You can enable it using `true` or disable it using `false`. |
| Enable video call for group     | `UIKitSettings.groupVideoCall(true)`      | You can enable it using `true` or disable it using `false`. |
| Enable sound for calls          | `UIKitSettings.enableSoundForCalls(true)` | You can enable it using `true` or disable it using `false`. |
| Show action messages for calls. | `UIKitSettings.callNotification(true)`    | You can show it using `true` or hide it using `false`.      |

***

### **User settings**

| Description                                             | Code Snippet                                                            | Settings                                                                                                         |
| ------------------------------------------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Show users-conversations/group-conversation only        | `UIKitSettings.setConversationsMode(ConversationMode conversationMode)` | You can use below constants. - `ConversationMode.ALL_CHATS` - `ConversationMode.GROUP` - `ConversationMode.USER` |
| Show all-users/friends                                  | `UIKitSettings.setUsersMode(UserMode mode)`                             | You can use below constants. - `UserMode.ALL_USER` - UserMode.FRIENDS\`                                          |
| Show all-groups/password-protected groups/public-groups | `UIKitSettings.setGroupsMode(GroupMode mode)`                           | You can use below constants. - `GroupMode.ALL_GROUPS` - GroupMode.PUBLIC\_GROUP\`                                |
| Show user presence                                      | `UIKitSettings.userPresence(true)`                                      | You can show it using `true` or hide it using `false`.                                                           |
| Allow Users to block                                    | `UIKitSettings. blockUser(true)`                                        | You can allow it using `true` or disallow it using `false`.                                                      |

***

### **Group settings**

| Description                                        | Code Snippet                                               | Settings                                                    |
| -------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------- |
| Show create group                                  | `UIKitSettings.groupCreate(true)`                          | You can show it using `true` or hide it using `false`.      |
| Show join or leave group                           | `UIKitSettings. joinOrLeaveGroup(true)`                    | You can show it using `true` or hide it using `false`.      |
| Show delete group                                  | `UIKitSettings.allowDeleteGroups(true)`                    | You can show it using `true` or hide it using `false`.      |
| Show group members                                 | `UIKitSettings.viewGroupMembers(true)`                     | You can show it using `true` or hide it using `false`.      |
| Show add member                                    | `UIKitSettings.allowAddMembers(true)`                      | You can show it using `true` or hide it using `false`.      |
| Allow moderator to delete messages of participants | `UIKitSettings.allowModeratorToDeleteMemberMessages(true)` | You can allow it using `true` or disallow it using `false`. |
| Allow user to kick members                         | `UIKitSettings.kickMember(true)`                           | You can allow it using `true` or disallow it using `false`. |
| Allow user to ban members                          | `UIKitSettings.banMember(true)`                            | You can allow it using `true` or disallow it using `false`. |
| Allow user to promote or demote members            | `UIKitSettings.allowPromoteDemoteMembers(true)`            | You can allow it using `true` or disallow it using `false`. |
| Show group action messages in groups.              | `UIKitSettings.groupNotifications(true)`                   | You can show it using `true` or hide it using `false`.      |

***

### **Message settings**

| Description                                                            | Code Snippet                                   | Settings                                                    |
| ---------------------------------------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------- |
| Allow send message                                                     | `UIKitSettings.allowSendingMessages(true)`     | You can allow it using `true` or disallow it using `false`. |
| Allow send photos & videos                                             | `UIKitSettings.sendPhotosVideo(true)`          | You can allow it using `true` or disallow it using `false`. |
| Allow send files & documents                                           | `UIKitSettings.sendFiles(true)`                | You can allow it using `true` or disallow it using `false`. |
| Allow send voice notes                                                 | `UIKitSettings.sendVoiceNotes(true)`           | You can allow it using `true` or disallow it using `false`. |
| Allow send emojis from keyboard                                        | `UIKitSettings.sendEmojis(true)`               | You can allow it using `true` or disallow it using `false`. |
| Allow send emojis in Larger Size                                       | `UIKitSettings.sendEmojisInLargeSize(true)`    | You can allow it using `true` or disallow it using `false`. |
| Show typing indicator                                                  | `UIKitSettings.sendTypingIndicators(true)`     | You can show it using `true` or hide it using `false`.      |
| Ability to edit the message                                            | `UIKitSettings.editMessage(true)`              | You can allow it using `true` or disallow it using `false`. |
| Ability to delete the message                                          | `UIKitSettings.deleteMessage(true)`            | You can allow it using `true` or disallow it using `false`. |
| Ability to share, copy & forward the message                           | `UIKitSettings.shareCopyForwardMessage(true)`  | You can allow it using `true` or disallow it using `false`. |
| Ability to reply on message                                            | `UIKitSettings.replyingToMessage(true)`        | You can allow it using `true` or disallow it using `false`. |
| Ability to start new thread for message                                | `UIKitSettings.threadedChats(true)`            | You can allow it using `true` or disallow it using `false`. |
| Ability to share live reaction                                         | `UIKitSettings.sendLiveReaction(true)`         | You can enable it using `true` or disable it using `false`. |
| Ability to share your location                                         | `UIKitSettings.shareLocation(true)`            | You can allow it using `true` or disallow it using `false`. |
| Show shared media                                                      | `UIKitSettings.viewSharedMedia(true)`          | You can show it using `true` or hide it using `false`.      |
| Show read/delivery receipts for Messages                               | `UIKitSettings.showReadDeliveryReceipts(true)` | You can show it using `true` or hide it using `false`.      |
| Ability to create poll (Poll Extension must be enabled from Dashboard) | `UIKitSettings.sendPolls(true)`                | You can allow it using `true` or disallow it using `false`. |
| Enable Message Reactions                                               | `UIKitSettings.sendMessageReaction(true)`      | You can enable it using `true` or disable it using `false`. |
| Enable Collaborative Document                                          | `UIKitSettings.collaborativeWhiteBoard(true)`  | You can enable it using `true` or disable it using `false`. |
| Enable Collaborative Whiteboard                                        | `UIKitSettings.collaborativeDocument(true)`    | You can enable it using `true` or disable it using `false`. |

***
