diff --git a/CODEOWNERS b/CODEOWNERS index 2d8dc495c..78cba80b4 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -6,7 +6,7 @@ # Default owners for everything in the repo -- @swapnil-cometchat +* @jitvarpatil # Moderation related files diff --git a/mcp-server.mdx b/mcp-server.mdx index 469db6d5c..239123405 100644 --- a/mcp-server.mdx +++ b/mcp-server.mdx @@ -109,25 +109,28 @@ and write the code into your project. target framework, so the agent can pick the right one. - Return a curated implementation recipe — prerequisites, install, - configuration, working code — for a named scenario. + Return the docs pages for a named scenario — the integration guide and + the platform's AI reference page — compiled into one document. -### Ten curated implementation bundles +### Implementation bundles -| Bundle | What it covers | +Each bundle is compiled from the current pages of these docs, so it always matches what the docs say. + +| Bundle | Built from | | --- | --- | -| `react-uikit-quickstart` | React UI Kit install, init, login, conversations list, chat window | -| `react-native-uikit-quickstart` | React Native UI Kit install, navigation, basic chat screen | -| `flutter-uikit-quickstart` | Flutter UI Kit install, init, login, basic chat | -| `ios-uikit-quickstart` | iOS UI Kit (SwiftUI) install, init, login, chat view | -| `android-uikit-quickstart` | Android UI Kit (Compose) install, init, login, chat screen | -| `js-sdk-messaging-basics` | Vanilla JS SDK install, send/receive text and media messages | -| `widget-embed` | No-code widget embed for an existing site | -| `moderation-setup` | AI moderation, profanity filter, image moderation, webhooks | -| `multi-tenant-chat` | Multi-tenant SaaS chat — auth, isolation, tenant-scoped users | -| `presence-and-typing` | Online presence, typing indicators, read receipts | +| `react-uikit-quickstart` | [React integration](/ui-kit/react/integration-react) and the React AI reference page | +| `react-native-uikit-quickstart` | [React Native CLI integration](/ui-kit/react-native/react-native-cli-integration) and the React Native AI reference page | +| `angular-uikit-quickstart` | [Angular integration](/ui-kit/angular/integration) and the Angular AI reference page | +| `flutter-uikit-quickstart` | [Flutter getting started](/ui-kit/flutter/getting-started) and the Flutter AI reference page | +| `ios-uikit-quickstart` | [iOS integration](/ui-kit/ios/getting-started) and the iOS AI reference page | +| `android-uikit-quickstart` | [Android getting started](/ui-kit/android/getting-started), the Jetpack Compose guide, and the Android AI reference page | +| `js-sdk-messaging-basics` | JavaScript SDK [setup](/sdk/javascript/setup-sdk), [send](/sdk/javascript/send-message) and [receive](/sdk/javascript/receive-message) messages | +| `presence-and-typing` | JavaScript SDK [presence](/sdk/javascript/user-presence), [typing indicators](/sdk/javascript/typing-indicators) and [receipts](/sdk/javascript/delivery-read-receipts) | +| `moderation-setup` | [Moderation getting started](/moderation/getting-started) | +| `multi-tenant-chat` | [Multi-tenancy](/fundamentals/multi-tenancy) | +| `widget-embed` | [Widget HTML integration](/widget/html/integration) | ### Orientation skill resource diff --git a/ui-kit/android/call-features.mdx b/ui-kit/android/call-features.mdx index af17a5d73..492f6ed6a 100644 --- a/ui-kit/android/call-features.mdx +++ b/ui-kit/android/call-features.mdx @@ -33,8 +33,8 @@ Add the following dependency to your `build.gradle.kts` file: ```kotlin build.gradle.kts dependencies { - implementation("com.cometchat:chatuikit-kotlin-android:6.0.6") - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:chatuikit-kotlin-android:6.1.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` @@ -42,8 +42,8 @@ dependencies { ```kotlin build.gradle.kts dependencies { - implementation("com.cometchat:chatuikit-compose-android:6.0.6") - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:chatuikit-compose-android:6.1.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` diff --git a/ui-kit/android/calling-integration.mdx b/ui-kit/android/calling-integration.mdx index ede933702..162750233 100644 --- a/ui-kit/android/calling-integration.mdx +++ b/ui-kit/android/calling-integration.mdx @@ -36,8 +36,8 @@ Add the CometChat Calls SDK dependency alongside your chosen UI Kit module: ```kotlin build.gradle.kts dependencies { - implementation("com.cometchat:chatuikit-kotlin-android:6.0.6") - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:chatuikit-kotlin-android:6.1.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` @@ -45,8 +45,8 @@ dependencies { ```kotlin build.gradle.kts dependencies { - implementation("com.cometchat:chatuikit-compose-android:6.0.6") - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:chatuikit-compose-android:6.1.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` diff --git a/ui-kit/android/getting-started-jetpack.mdx b/ui-kit/android/getting-started-jetpack.mdx index 5a4377e55..d5e17326d 100644 --- a/ui-kit/android/getting-started-jetpack.mdx +++ b/ui-kit/android/getting-started-jetpack.mdx @@ -116,13 +116,21 @@ android { dependencies { // CometChat Jetpack Compose UI Kit - implementation("com.cometchat:chatuikit-compose-android:6.0.6") + implementation("com.cometchat:chatuikit-compose-android:6.1.1") // (Optional) Voice/video calling - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` + +**Use Compose 1.8 or newer.** `chatuikit-compose-android` 6.1.1 declares compose-bom 2024.09.00 (Compose 1.7) in its POM, but calls a Compose 1.8 `LazyColumn` API. With Compose 1.7 the app builds, then crashes with `NoSuchMethodError: ... LazyColumn(...)` when `CometChatConversations` first renders. Pin a newer BOM in your app module: + +```kotlin +implementation(platform("androidx.compose:compose-bom:2025.06.00")) +``` + + --- diff --git a/ui-kit/android/getting-started-kotlin.mdx b/ui-kit/android/getting-started-kotlin.mdx index a60485102..e275017ca 100644 --- a/ui-kit/android/getting-started-kotlin.mdx +++ b/ui-kit/android/getting-started-kotlin.mdx @@ -111,10 +111,10 @@ android { dependencies { // CometChat Kotlin UI Kit - implementation("com.cometchat:chatuikit-kotlin-android:6.0.6") + implementation("com.cometchat:chatuikit-kotlin-android:6.1.1") // (Optional) Voice/video calling - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` diff --git a/ui-kit/android/getting-started.mdx b/ui-kit/android/getting-started.mdx index cb38fc392..b310a01a8 100644 --- a/ui-kit/android/getting-started.mdx +++ b/ui-kit/android/getting-started.mdx @@ -88,8 +88,8 @@ Inside `libs.versions.toml`, add the versions: ```toml libs.versions.toml [versions] -cometchat-ui-kit = "6.0.3" -cometchat-calls-sdk = "5.0.1" +cometchat-ui-kit = "6.1.1" +cometchat-calls-sdk = "5.0.4" ``` Define the libraries — pick the module for your UI toolkit: @@ -132,10 +132,10 @@ Open the app-level `build.gradle.kts` file and add the dependency for your chose ```kotlin build.gradle.kts dependencies { - implementation("com.cometchat:chatuikit-kotlin-android:6.0.6") + implementation("com.cometchat:chatuikit-kotlin-android:6.1.1") // (Optional) Include if using voice/video calling features - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` @@ -143,10 +143,10 @@ dependencies { ```kotlin build.gradle.kts dependencies { - implementation("com.cometchat:chatuikit-compose-android:6.0.6") + implementation("com.cometchat:chatuikit-compose-android:6.1.1") // (Optional) Include if using voice/video calling features - implementation("com.cometchat:calls-sdk-android:5.0.1") + implementation("com.cometchat:calls-sdk-android:5.0.4") } ``` diff --git a/ui-kit/angular/components/cometchat-message-list.mdx b/ui-kit/angular/components/cometchat-message-list.mdx index 63a55f241..802df567e 100644 --- a/ui-kit/angular/components/cometchat-message-list.mdx +++ b/ui-kit/angular/components/cometchat-message-list.mdx @@ -358,7 +358,7 @@ This section provides a complete reference of all @Input properties, @Output eve | `messagesRequestBuilder` | `CometChat.MessagesRequestBuilder` | `undefined` | Custom request builder for advanced message filtering and pagination configuration. | | `reactionsRequestBuilder` | `CometChat.ReactionsRequestBuilder` | `undefined` | Custom request builder for configuring how reactions are fetched. | | `textFormatters` | `CometChatTextFormatter[]` | `undefined` | Array of text formatters for processing message text content (mentions, links, custom patterns). | -| `messageAlignment` | `MessageListAlignment` | `'standard'` | Message alignment mode. Options: `'left'` (all messages left-aligned) or `'standard'` (sent right, received left). | +| `messageAlignment` | `MessageListAlignment` | `MessageListAlignment.standard` | Message alignment mode. Options: `MessageListAlignment.left` (all messages left-aligned) or `MessageListAlignment.standard` (sent right, received left). The enum is numeric, so bind the enum member, not a string. | | `scrollToBottomOnNewMessages` | `boolean` | `false` | When `true`, automatically scrolls to the bottom when new messages arrive. | | `quickOptionsCount` | `number` | `2` | Number of quick action options to display directly on the message bubble. | | `disableSoundForMessages` | `boolean` | `false` | When `true`, disables notification sounds for incoming messages. | @@ -625,8 +625,8 @@ const customDateFormat: CalendarObject = { ```typescript enum MessageListAlignment { - standard = 'standard', // Sent messages right, received messages left - left = 'left' // All messages aligned to the left + left = 0, // All messages aligned to the left + standard = 1 // Sent messages right, received messages left } ``` @@ -634,9 +634,9 @@ enum MessageListAlignment { ```typescript enum MessageBubbleAlignment { - left = 'left', // Message bubble aligned to the left - right = 'right', // Message bubble aligned to the right - center = 'center' // Message bubble centered (used for action messages) + left = 0, // Message bubble aligned to the left + right = 1, // Message bubble aligned to the right + center = 2 // Message bubble centered (used for action messages) } ``` @@ -806,18 +806,20 @@ import { CometChatMessageListComponent, MessageListAlignment } from '@cometchat/ ` }) export class LeftAlignedChatComponent { user?: CometChat.User; + // Expose the enum to the template. Its values are numbers, so a string such as 'left' does not work. + readonly MessageListAlignment = MessageListAlignment; } ``` @@ -1977,7 +1979,6 @@ class HashtagFormatter extends CometChatTextFormatter { [scrollToBottomOnNewMessages]="true" [disableSoundForMessages]="false" - [messageAlignment]="'standard'" [hideReceipts]="false" diff --git a/ui-kit/ios/getting-started.mdx b/ui-kit/ios/getting-started.mdx index b9abeb260..d7bda0e85 100644 --- a/ui-kit/ios/getting-started.mdx +++ b/ui-kit/ios/getting-started.mdx @@ -9,14 +9,14 @@ description: "Integrate CometChat iOS UI Kit with project setup, package install | Field | Value | | --- | --- | | Package | `CometChatUIKitSwift` | -| Version | `5.1.22` | -| Requirements | Xcode 16+, iOS 13.0+, Swift 5.0+ | +| Version | `5.2.3` (Swift Package Manager, Up to Next Major Version) | +| Requirements | Xcode 16+, iOS 15.1+, Swift 5.0+ | | Init | `CometChatUIKit.init(uiKitSettings:)` — must complete before `login()` | | Login | `CometChatUIKit.login(uid:)` — must complete before rendering components | | Order | `init()` → `login()` → render. Breaking this order = blank screen | | Auth Key | Dev/testing only. Use Auth Token in production | -| Calling | Optional. Install `CometChatCallsSDK 4.2.3` to enable | -| Dependencies | `CometChatSDK 4.1.9` (installed automatically) | +| Calling | Optional. Add `CometChatCallsSDK` 5.0.4 (Up to Next Major Version) to enable | +| Dependencies | `CometChatSDK` 4.1.10+ (resolved automatically by the UI Kit package) | | AI Skills | `npx @cometchat/skills add` — [GitHub](https://github.com/cometchat/cometchat-skills) | @@ -65,7 +65,7 @@ You need three things from the [CometChat Dashboard](https://app.cometchat.com/) You also need: - Xcode 16 or later -- iOS device or simulator running iOS 13.0+ +- iOS device or simulator running iOS 15.1+ - Swift 5.0+ - macOS @@ -88,42 +88,8 @@ Open Xcode and create a new project: ## Step 2 — Install the UI Kit - - -1. Create a Podfile in your project root: +Add the UI Kit with Swift Package Manager: -```bash -pod init -``` - -2. Add CometChat to your Podfile: - -```ruby title="Podfile" -platform :ios, '13.0' -use_frameworks! - -target 'YourApp' do - pod 'CometChatUIKitSwift', '5.1.22' - - # Optional: Voice/Video Calling - pod 'CometChatCallsSDK', '4.2.3' -end -``` - -3. Install dependencies: - -```bash -pod install --repo-update -``` - -4. Close the `.xcodeproj` file and open the `.xcworkspace` file instead. CocoaPods creates a workspace that includes your project and the installed pods. - - -Always open the `.xcworkspace` file after installing pods — opening the `.xcodeproj` will cause build errors. Having issues? See [CocoaPods Troubleshooting](/ui-kit/ios/troubleshooting#cocoapods-issues). - - - - 1. Go to **File → Add Package Dependencies** 2. Enter the repository URL: @@ -132,29 +98,20 @@ Always open the `.xcworkspace` file after installing pods — opening the `.xcod https://github.com/cometchat/cometchat-uikit-ios ``` -3. Select **Up to Exact Version** and enter: +3. Select **Up to Next Major Version** and enter: ``` -5.1.22 +5.2.3 ``` -4. Add the Chat SDK separately using: +4. Add the **CometChatUIKitSwift** product to your app target. -``` -https://github.com/cometchat/chat-sdk-ios -``` +The UI Kit package declares its own dependencies, so SPM also resolves `CometChatSDK` (4.1.10 or later) and `CometChatCardsSwift`. Don't add `chat-sdk-ios` yourself. If an older integration pins it to an exact version, remove that pin or change it to **Up to Next Major Version** from 4.1.10; an exact pin below 4.1.10 makes package resolution fail. - Exact Version: `4.1.9` - - +For voice and video calling, also add `https://github.com/cometchat/calls-sdk-ios` with **Up to Next Major Version** from `5.0.4`. A chat-only app doesn't need it. -**Pin the Chat SDK to the exact version the UI Kit requires.** `CometChatUIKitSwift` ships as a prebuilt binary compiled against one specific `CometChatSDK` version — for UI Kit `5.1.22` that is `CometChatSDK 4.1.9` (see the version table at the top of this page). - -- **CocoaPods** installs the matching `CometChatSDK` automatically when you run `pod install`. Don't add your own `CometChatSDK` pod pinned to a different version. -- **Swift Package Manager** does not resolve it for you — add `chat-sdk-ios` with **Up to Exact Version** set to the version the UI Kit depends on. Forcing a newer or older Chat SDK (an SPM override) is unsupported and typically fails to build or crashes at runtime. - -To adopt a newer Chat SDK release, upgrade to a UI Kit version that depends on it rather than overriding the SDK version directly. The full list of Chat SDK releases is on [GitHub](https://github.com/cometchat/chat-sdk-ios/releases). +**CocoaPods:** the latest UI Kit on CocoaPods is 5.1.18, and new releases ship through Swift Package Manager only. Move CocoaPods projects to Swift Package Manager to get current releases and fixes. --- diff --git a/ui-kit/ios/message-list.mdx b/ui-kit/ios/message-list.mdx index 07995141c..45c34fb35 100644 --- a/ui-kit/ios/message-list.mdx +++ b/ui-kit/ios/message-list.mdx @@ -43,7 +43,7 @@ The `CometChatMessageList` component displays a scrollable list of messages in a "onLoad": "([BaseMessage]) -> Void" }, "visibility": { - "hideAvatar": { "type": "Bool", "default": false }, + "hideAvatar": { "type": "Bool?", "default": "nil" }, "hideReceipts": { "type": "Bool", "default": false }, "hideDateSeparator": { "type": "Bool", "default": false }, "hideHeaderView": { "type": "Bool", "default": false }, @@ -75,7 +75,7 @@ The `CometChatMessageList` component displays a scrollable list of messages in a "enablePinMessage": { "type": "Bool", "default": false, "note": "Also requires CometChat.isPinMessageEnabled()" }, "enableSaveMessage": { "type": "Bool", "default": false, "note": "Also requires CometChat.isSaveMessageEnabled()" }, "enableThreadSubscription": { "type": "Bool", "default": false, "note": "Offered on parent messages only, never on a reply" }, - "messageAlignment": { "type": "MessageAlignment", "default": ".standard" } + "messageAlignment": { "type": "MessageListAlignment", "default": ".standard" } }, "viewSlots": { "headerView": "() -> UIView", @@ -116,9 +116,9 @@ The `CometChatMessageList` component displays a scrollable list of messages in a "type": "String", "category": "String" }, - "MessageAlignment": { + "MessageListAlignment": { "standard": "Outgoing messages on right, incoming on left", - "left": "All messages aligned to left" + "leftAligned": "All messages aligned to left" } } } @@ -1578,12 +1578,12 @@ messageList.errorTitleText = "Unable to load messages" ### hideAvatar -Hides the sender's avatar in message bubbles. +Hides the sender's avatar in message bubbles. When it is not set (`nil`), avatars show on incoming messages in group chats and are hidden in one-to-one chats. Set it to `false` to show avatars in one-to-one chats too. | | | |---|---| -| Type | `Bool` | -| Default | `false` | +| Type | `Bool?` | +| Default | `nil` | ### hideBubbleHeader @@ -1851,13 +1851,17 @@ Hides the message translation option. ### messageAlignment -Sets the alignment of messages in the list. +Sets the alignment of messages in the list: `.standard` (outgoing on the right, incoming on the left) or `.leftAligned` (all messages on the left). | | | |---|---| -| Type | `MessageAlignment` | +| Type | `MessageListAlignment` | | Default | `.standard` | +```swift +messageList.set(messageAlignment: .leftAligned) +``` + ### messageBubbleStyle Customizes the appearance of message bubbles.