Skip to content

Latest commit

 

History

History
134 lines (119 loc) · 59.8 KB

File metadata and controls

134 lines (119 loc) · 59.8 KB

Flutter SDK (sdk/flutter/) Changes Review

Base: commit 5e4976de (state before the improvements branch)
Target: commit 9feb900b (tip of docs/flutter-sdk-improvments)
Scope: sdk/flutter/*.mdx only, sdk/flutter/3.0/ excluded
Total: 62 files modified (+8,176 lines, −16 lines)
Commits:

  • 659f8839 — "feat: made docs more agentic and developer friendly" (added Quick Reference <Info> blocks, description frontmatter, <Warning> blocks, <Note> blocks, and Next Steps <CardGroup> navigation to all files)
  • beb0cc1c — "docs(flutter): add response and error accordions to SDK docs" (added <Accordion title="Response"> and <Accordion title="Error"> sections after every SDK method call across all files except presenter-mode)
  • 9feb900b — "docs(flutter): add response and error accordions to presenter mode" (added response/error accordions to the final remaining file)

What Changed Across All Files — Pattern Summary

Every file received some combination of these five additions:

1. description frontmatter (all 62 files)

A one-line SEO description was added to the YAML frontmatter of every file. Example:

description: "Get started with the CometChat Flutter SDK to add real-time chat and calling features to your Flutter application."

2. AI Agent Quick Reference <Info> blocks (all 62 files)

A hidden comment {/* TL;DR for Agents and Quick Reference */} followed by an <Info> block containing copy-paste-ready Dart/YAML code snippets was added at the top of every page, right after the frontmatter. These blocks are designed for both AI agents and developers to quickly understand the page's core functionality without reading the full content. Example from overview.mdx:

// Initialize (run once at app start)
AppSettings appSettings = (AppSettingsBuilder()
  ..subscriptionType = CometChatSubscriptionType.allUsers
  ..region = "REGION"
  ..autoEstablishSocketConnection = true
).build();

CometChat.init("APP_ID", appSettings,
  onSuccess: (msg) => debugPrint("Init success"),
  onError: (e) => debugPrint("Init failed: ${e.message}"),
);

3. Response/Error Accordions (most files — wherever SDK methods exist)

After every SDK method call on the page, two expandable <Accordion> sections were added:

  • <Accordion title="Response"> — Documents the success callback return type with a table of fields including Parameter, Type, Description, and Sample Value. For complex objects (User, Group, BaseMessage, Call), every field is listed with realistic sample values.
  • <Accordion title="Error"> — Documents the error callback with code, message, and details fields and sample error values.

Example Response table fields for sendMessage(): id, metadata, receiver, editedBy, conversationId, sentAt, receiverUid, type, readAt, deletedBy, deliveredAt, deletedAt, replyCount, sender, receiverType, editedAt, parentMessageId, readByMeAt, category, deliveredToMeAt, updatedAt, text, tags, unreadRepliesCount, mentionedUsers, hasMentionedMe, reactions, moderationStatus, quotedMessageId — plus nested Sender and Receiver User object tables.

Example Error table:

Parameter Type Description Sample Value
code string Error code identifier "ERR_CHAT_API_FAILURE"
message string Human-readable error message "SDK initialization failed."
details string Additional technical details "Please verify your App ID and region, then try again."

4. <Warning> blocks (select files — where common pitfalls exist)

Warning callouts were added for critical developer pitfalls. Examples:

  • overview.mdx / setup.mdx: "CometChat.init() must be called before any other SDK method. Calling login(), sendMessage(), or registering listeners before init() will fail."
  • authentication-overview.mdx: "Auth Key is for development/testing only. In production, generate Auth Tokens server-side."
  • delete-message.mdx / delete-conversation.mdx / delete-group.mdx: Warnings about permanent/irreversible deletion
  • default-call.mdx: "Generate a call token before starting a session"
  • ai-agents.mdx: "Always remove AI Assistant listeners when they're no longer needed (e.g., on widget dispose or page navigation). Failing to remove listeners can cause memory leaks and duplicate event handling."
  • receive-messages.mdx: Warning about removing message listeners on dispose

5. Next Steps <CardGroup> navigation (all 62 files)

A --- horizontal rule followed by a ## Next Steps heading and a <CardGroup cols={2}> with 2–4 <Card> links was added at the bottom of every page. Each card has a title, icon, href, and description pointing to logically related pages.


Detailed File-by-File Changes

File Name Changes List Description
overview.mdx 1. Added description: "Get started with the CometChat Flutter SDK to add real-time chat and calling features to your Flutter application."
2. Added Quick Reference <Info> block containing: cometchat_sdk: ^4.0.33 install yaml, CometChat.init() with AppSettingsBuilder code, CometChat.login() with Auth Key code, commented loginWithAuthToken() alternative, credential source note pointing to Dashboard
3. Added <Warning>: "CometChat.init() must be called before any other SDK method. Calling login(), sendMessage(), or registering listeners before init() will fail."
4. Added Response accordion after CometChat.init() — success returns a String message: "Initialization completed successfully"
5. Added Error accordion after CometChat.init() — error fields: code ("ERR_CHAT_API_FAILURE"), message ("SDK initialization failed."), details ("Please verify your App ID and region, then try again.")
6. Added Response accordion after CometChat.createUser() — returns a User object with 12 fields: uid, name, link, avatar, metadata, status ("offline"), role ("default"), statusMessage, tags, hasBlockedMe, blockedByMe, lastActiveAt
7. Added Error accordion after CometChat.createUser() — error fields: code ("ERR_UID_NOT_FOUND"), message, details
8. Added Response accordion after CometChat.login() — returns a User object with same 12 fields, sample status is "online", sample lastActiveAt is 1745554700
9. Added Error accordion after CometChat.login() — same error structure
10. Added Next Steps CardGroup with 4 cards: "Setup SDK" (icon: gear, href: /sdk/flutter/setup), "Key Concepts" (icon: lightbulb, href: /sdk/flutter/key-concepts), "Authentication" (icon: key, href: /sdk/flutter/authentication-overview), "Send Messages" (icon: paper-plane, href: /sdk/flutter/send-message)
This is the main entry point for the Flutter SDK docs. The Quick Reference block gives developers the complete install → init → login flow in one glance. The <Warning> prevents the #1 integration mistake (calling SDK methods before init). Response accordions document the exact shape of User objects returned by createUser() and login(), including all 12 fields with realistic sample values. Error accordions show the standard CometChatException structure (code/message/details) that is consistent across all SDK methods. The Next Steps cards create a guided learning path from overview → setup → auth → messaging.
setup.mdx 1. Added description: "Install and initialize the CometChat Flutter SDK in your application"
2. Added Quick Reference <Info> block — same install + init + login code as overview, plus credential source note
3. Added <Warning>: same init-before-other-methods warning
4. Added Response accordion after CometChat.init()String success message
5. Added Error accordion after CometChat.init()code/message/details
6. Added Next Steps CardGroup with 2 cards: "Authentication" (icon: key), "Send Messages" (icon: paper-plane)
The setup page is the detailed installation guide (pubspec.yaml, podfile, minSdkVersion, etc.). The Quick Reference duplicates the overview's code block intentionally — developers may land on either page first. Response/Error accordions document what init() returns on success/failure so developers know what to expect in their callbacks.
authentication-overview.mdx 1. Added description: "Learn how to authenticate users in your Flutter app using CometChat SDK with Auth Key for development or Auth Token for production."
2. Added Quick Reference <Info> block with: CometChat.login(UID, authKey) code, CometChat.loginWithAuthToken(authToken) code, CometChat.logout() code, note about getLoggedInUser() to check existing session
3. Added <Warning>: "Auth Key is intended for development/testing only. For production, generate Auth Tokens server-side via the REST API and use loginWithAuthToken()."
4. Added Response accordion after login() with Auth Key — User object with 12 fields (uid, name, avatar, status="online", role="default", lastActiveAt, etc.)
5. Added Error accordion after login() with Auth Key — code ("ERR_UID_NOT_FOUND"), message, details
6. Added Response accordion after loginWithAuthToken() — same User object structure
7. Added Error accordion after loginWithAuthToken() — same error structure
8. Added Response accordion after logout()String success message: "User logged out successfully"
9. Added Error accordion after logout()code/message/details
10. Added Next Steps CardGroup with 4 cards: "Send Messages", "Receive Messages", "Key Concepts", "Users"
The auth page now clearly distinguishes between Auth Key (dev) and Auth Token (prod) flows. The <Warning> is a critical security note — shipping Auth Keys in production client code is a common mistake. Each of the three auth methods (login with key, login with token, logout) has its own response/error accordion so developers can see exactly what each returns.
key-concepts.mdx 1. Added description: "Understand the core concepts of CometChat including Dashboard, API keys, users, groups, messages, and conversations."
2. Added Quick Reference <Info> block summarizing: CometChat Dashboard purpose, Auth Key vs REST API Key differences (Auth Key = client-side dev, REST API Key = server-side), Users/UID/Auth Token concepts, Groups (GUID, public/private/password types), Messages (text/media/custom/interactive), Conversations (user/group)
3. Added Next Steps CardGroup with 4 cards: "Setup", "Authentication", "Send Messages", "Groups"
The Quick Reference block condenses the entire key-concepts page into a scannable summary. This is especially useful for AI agents that need to understand CometChat's data model quickly. No response/error accordions here since this is a conceptual page with no SDK method calls.
send-message.mdx 1. Added description: "Learn how to send text, media, and custom messages to users and groups using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.sendMessage(textMessage) code, CometChat.sendMediaMessage(mediaMessage) code, CometChat.sendCustomMessage(customMessage) code
3. Added <Note>: "Available via: SDK | REST API | UI Kits | Dashboard"
4. Added <Warning>: "CometChat.init() and CometChat.login() must complete before sending messages."
5. Added Response accordion after sendMessage() for text — BaseMessage object with 28 fields: id (401), metadata, receiver (nested User object), editedBy, conversationId ("cometchat-uid-1_user_cometchat-uid-2"), sentAt (epoch), receiverUid, type ("text"), readAt, deletedBy, deliveredAt, deletedAt, replyCount, sender (nested User object with uid/name/avatar/status/role/tags/etc.), receiverType ("user"), editedAt, parentMessageId, readByMeAt, category ("message"), deliveredToMeAt, updatedAt, text ("messageText"), tags, unreadRepliesCount, mentionedUsers, hasMentionedMe, reactions, moderationStatus, quotedMessageId — plus full nested Sender User object (12 fields) and Receiver User object (12 fields)
6. Added Error accordion after sendMessage() for text
7. Added Response accordion after sendMediaMessage() — similar BaseMessage structure with additional attachment field containing url, extension, size, mimeType
8. Added Error accordion after sendMediaMessage()
9. Added Response accordion after sendCustomMessage()BaseMessage with customData map field
10. Added Error accordion after sendCustomMessage()
11. Added Next Steps CardGroup with 4 cards: "Receive Messages", "Edit Message", "Delete Message", "Threaded Messages"
This is one of the most heavily documented files (+559 lines). The BaseMessage response table is the most comprehensive object documentation in the entire SDK docs — 28 top-level fields plus two nested User objects (Sender and Receiver) each with 12 fields. This gives developers complete visibility into what the onSuccess callback returns. The nested object tables use anchor links (#send-text-sender-object, #send-text-receiver-object) for easy navigation. Media message response adds attachment metadata. Custom message response shows the customData map structure.
receive-messages.mdx 1. Added description: "Learn how to receive real-time messages and fetch message history using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.addMessageListener() code showing onTextMessageReceived, onMediaMessageReceived, onCustomMessageReceived callbacks; MessagesRequestBuilder with fetchPrevious()/fetchNext() code; CometChat.removeMessageListener() cleanup code
3. Added <Warning>: "Always remove message listeners when they're no longer needed (e.g., on widget dispose). Failing to remove listeners can cause memory leaks and duplicate event handling."
4. Added Response accordion after fetchPrevious()List<BaseMessage> with full BaseMessage object table (28 fields per message, same structure as send-message)
5. Added Error accordion after fetchPrevious()
6. Added Response accordion after fetchNext() — same List<BaseMessage> structure
7. Added Error accordion after fetchNext()
8. Added Response accordions for each real-time listener callback: onTextMessageReceived (TextMessage object), onMediaMessageReceived (MediaMessage with attachment), onCustomMessageReceived (CustomMessage with customData), onTypingStarted, onTypingEnded, onMessagesDelivered, onMessagesRead, onMessageEdited, onMessageDeleted
9. Added Error accordions for listener callbacks
10. Added Next Steps CardGroup with 4 cards: "Send Messages", "Threaded Messages", "Message Filtering", "Delivery Receipts"
The largest change after default-call.mdx (+767 lines). Every real-time listener callback now has its own Response accordion documenting the exact object shape that arrives in the callback. This is critical for developers building custom UIs — they need to know exactly which fields are available on TextMessage vs MediaMessage vs CustomMessage. The memory leak warning about removing listeners is a common Flutter pitfall.
edit-message.mdx 1. Added description: "Learn how to edit sent messages in your Flutter app using the CometChat SDK."
2. Added Quick Reference <Info> block with: CometChat.editMessage(textMessage) code for text, CometChat.editMessage(mediaMessage) code for media
3. Added Response accordion after editMessage() for text — BaseMessage object with editedAt populated (non-zero epoch), editedBy populated with editor's UID
4. Added Error accordion after editMessage() for text
5. Added Response accordion after editMessage() for media — same structure with attachment metadata
6. Added Error accordion after editMessage() for media
7. Added Next Steps CardGroup with 3 cards: "Delete Message", "Send Messages", "Threaded Messages"
The response accordions specifically highlight the editedAt and editedBy fields that change when a message is edited — this helps developers understand which fields to check in their UI to show "edited" indicators.
delete-message.mdx 1. Added description: "Learn how to delete messages and handle real-time deletion events in your Flutter app using CometChat SDK."
2. Added Quick Reference <Info> block with: CometChat.deleteMessage(messageId) code, onMessageDeleted listener callback code
3. Added <Warning>: "Deleting a message is permanent and cannot be undone. The message will be removed for all participants in the conversation."
4. Added Response accordion after deleteMessage()BaseMessage object with deletedAt populated (non-zero epoch), deletedBy populated with deleter's UID
5. Added Error accordion after deleteMessage()
6. Added Next Steps CardGroup with 3 cards: "Edit Message", "Send Messages", "Receive Messages"
The permanence warning is important — unlike some chat platforms, CometChat's delete is not soft-delete by default. Response accordion highlights deletedAt and deletedBy fields.
delivery-read-receipts.mdx 1. Added description: "Learn how to implement message delivery and read receipts in your Flutter app using CometChat SDK."
2. Added Quick Reference <Info> block with: CometChat.markAsDelivered(message) code, CometChat.markAsRead(message) code, CometChat.markAsUnread(message) code, listener callbacks for onMessagesDelivered/onMessagesRead
3. Added Response accordion after markAsDelivered() — void success (no return value)
4. Added Error accordion after markAsDelivered()
5. Added Response accordion after markAsRead() — void success
6. Added Error accordion after markAsRead()
7. Added Response accordion after markAsUnread() — void success
8. Added Error accordion after markAsUnread()
9. Added Next Steps CardGroup with 3 cards: "Receive Messages", "Send Messages", "Typing Indicators"
Receipt methods return void on success (no object), so the Response accordions simply confirm "void — no return value". The Error accordions still document the CometChatException structure.
typing-indicators.mdx 1. Added description: "Learn how to send and receive typing indicators in your Flutter app using CometChat SDK."
2. Added Quick Reference <Info> block with: CometChat.startTyping(typingIndicator) code, CometChat.endTyping(typingIndicator) code, onTypingStarted/onTypingEnded listener callbacks
3. Added Next Steps CardGroup with 3 cards: "Send Messages", "Receive Messages", "Delivery Receipts"
No response/error accordions — typing indicator methods are fire-and-forget with no success/error callbacks. Quick reference shows both sending and receiving sides.
threaded-messages.mdx 1. Added description: "Learn how to send, receive, and fetch messages within a thread attached to a parent message in CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: send-in-thread code (textMessage.parentMessageId = 103), fetch-thread code (MessagesRequestBuilder()..parentMessageId = 103), hide-replies code (..hideReplies = true)
3. Added Response accordion after sendMessage() in thread — BaseMessage with parentMessageId populated (103)
4. Added Error accordion after sendMessage() in thread
5. Added Response accordion after fetchPrevious() for thread — List<BaseMessage> with parentMessageId on each message
6. Added Error accordion after fetchPrevious()
7. Added Response accordion after fetchNext() for thread — same structure
8. Added Error accordion after fetchNext()
9. Added Next Steps CardGroup with 3 cards: "Send Messages", "Receive Messages", "Message Filtering"
The Quick Reference block shows the three key thread operations in one place: sending into a thread, fetching a thread's messages, and excluding thread replies from the main conversation. Response accordions highlight the parentMessageId field that links messages to their thread.
mentions.mdx 1. Added description: "Learn how to mention users in messages and fetch mentioned messages using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: mention in text message code (setting mentionedUsers on TextMessage), fetch mentioned messages code (MessagesRequestBuilder()..mentionsWithType)
3. Added Response accordion after sending message with mentions — BaseMessage with mentionedUsers array populated, hasMentionedMe boolean
4. Added Error accordion
5. Added Response accordion after fetching mentioned messages — List<BaseMessage> with mention metadata
6. Added Error accordion
7. Added Next Steps CardGroup with 3 cards: "Send Messages", "Receive Messages", "Message Filtering"
Response accordions specifically show how mentionedUsers array and hasMentionedMe boolean appear in the response — developers need this to render @mention UI elements.
reactions.mdx 1. Added description: "Learn how to add, remove, and fetch reactions on messages using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.addReaction(messageId, emoji) code, CometChat.removeReaction(messageId, emoji) code, CometChat.fetchMessageReactions(messageId) code
3. Added Response accordion after addReaction()BaseMessage with reactions array populated
4. Added Error accordion after addReaction()
5. Added Response accordion after removeReaction()BaseMessage with updated reactions array
6. Added Error accordion after removeReaction()
7. Added Response accordion after fetchMessageReactions()List<ReactionCount> with fields: reaction (emoji string), count (number), reactedByMe (boolean)
8. Added Error accordion after fetchMessageReactions()
9. Added Next Steps CardGroup with 3 cards: "Send Messages", "Receive Messages", "Interactive Messages"
The fetchMessageReactions() response introduces a new object type (ReactionCount) not seen in other pages — it has reaction, count, and reactedByMe fields.
interactive-messages.mdx 1. Added description: "Learn how to send interactive messages (Form, Card, Scheduler) using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: FormMessage construction code, CardMessage construction code, SchedulerMessage construction code
3. Added Response accordion after sending FormMessageBaseMessage with interactiveData map containing form fields
4. Added Error accordion
5. Added Response accordion after sending CardMessageBaseMessage with interactiveData containing card layout
6. Added Error accordion
7. Added Next Steps CardGroup with 3 cards: "Send Messages", "Reactions", "Message Filtering"
Interactive messages have a unique interactiveData field in the response that contains the form/card/scheduler structure.
transient-messages.mdx 1. Added description: "Learn how to send and receive transient (ephemeral) messages that are not stored in CometChat's database."
2. Added Quick Reference <Info> block with: CometChat.sendTransientMessage(transientMessage) code, onTransientMessageReceived listener callback
3. Added Next Steps CardGroup with 3 cards: "Send Messages", "Typing Indicators", "Real-Time Listeners"
No response/error accordions — transient messages are fire-and-forget. The Quick Reference clarifies that these messages are not persisted.
flag-message.mdx 1. Added description: "Learn how to flag or report messages for moderation in your Flutter app using CometChat SDK."
2. Added Quick Reference <Info> block with: CometChat.flagMessage(message) code
3. Added Response accordion after flagMessage() — success confirmation
4. Added Error accordion after flagMessage()
5. Added Next Steps CardGroup with 3 cards: "Delete Message", "AI Moderation", "Extensions"
Flag message is a simple method with a straightforward response.
additional-message-filtering.mdx 1. Added description: "Learn how to use MessagesRequestBuilder to filter and fetch messages with various parameters including pagination, categories, types, tags, and advanced search options in Flutter."
2. Added Quick Reference <Info> block with: MessagesRequestBuilder examples showing filters by ..categories, ..types, ..tags, ..uid, ..guid, ..limit, ..searchKeyword, ..hideReplies, ..hideDeletedMessages
3. Added Next Steps CardGroup with 4 cards: "Receive Messages", "Send Messages", "Threaded Messages", "Message Structure"
No response/error accordions — this page documents the request builder configuration, not the fetch methods themselves (those are on receive-messages.mdx). The Quick Reference is a comprehensive filter cheat sheet.
message-structure-and-hierarchy.mdx 1. Added description: "Understand the message class hierarchy in CometChat Flutter SDK — BaseMessage, TextMessage, MediaMessage, CustomMessage, and InteractiveMessage."
2. Added Quick Reference <Info> block summarizing the class hierarchy: BaseMessage (parent) → TextMessage, MediaMessage, CustomMessage, InteractiveMessage (children), with key fields for each
3. Added Next Steps CardGroup with 4 cards: "Send Messages", "Receive Messages", "Interactive Messages", "Message Filtering"
Conceptual page — no SDK method calls, so no response/error accordions. The Quick Reference gives a class hierarchy overview.
messaging-overview.mdx 1. Added description: "Overview of CometChat's messaging capabilities for Flutter including text, media, custom, and interactive messages."
2. Added Quick Reference <Info> block listing all messaging features with links: Send Messages, Receive Messages, Edit/Delete, Threaded Messages, Typing Indicators, Delivery/Read Receipts, Mentions, Reactions, Interactive Messages, Transient Messages, Flag Message
3. Added Next Steps CardGroup with 4 cards: "Send Messages", "Receive Messages", "Threaded Messages", "Reactions"
Index page — the Quick Reference serves as a complete table of contents for the messaging section.
retrieve-conversations.mdx 1. Added description: "Learn how to fetch and paginate through conversations using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: ConversationsRequestBuilder code showing ..limit, ..conversationType, ..withTags, ..tags filters; fetchNext()/fetchPrevious() pagination code
3. Added Response accordion after fetchNext()List<Conversation> with fields: conversationId, conversationType ("user"/"group"), lastMessage (nested BaseMessage), conversationWith (nested User or Group object), unreadMessageCount, updatedAt, tags, lastReadMessageId
4. Added Error accordion after fetchNext()
5. Added Response accordion after fetchPrevious() — same structure
6. Added Error accordion after fetchPrevious()
7. Added Next Steps CardGroup with 4 cards: "Delete Conversation", "Send Messages", "Retrieve Users", "Retrieve Groups"
The Conversation object is a complex nested type — it contains a lastMessage (full BaseMessage) and a conversationWith (User or Group depending on type). The response tables document all these nested structures.
delete-conversation.mdx 1. Added description: "Learn how to delete user and group conversations from the logged-in user's conversation list using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.deleteConversation(conversationWith, conversationType) code
3. Added <Warning>: "Deleting a conversation removes it only from the logged-in user's list. The other participant's conversation is not affected. This action cannot be undone."
4. Added Response accordion after deleteConversation()String success message
5. Added Error accordion after deleteConversation()
6. Added Next Steps CardGroup with 2 cards: "Retrieve Conversations", "Send Messages"
The warning clarifies that conversation deletion is one-sided (only affects the current user) and irreversible.
retrieve-users.mdx 1. Added description: "Learn how to fetch and paginate through users using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: UsersRequestBuilder code showing ..limit, ..searchKeyword, ..status, ..hideBlockedUsers, ..roles, ..tags, ..uids filters; fetchNext() pagination code
3. Added Response accordion after fetchNext()List<User> with 12 fields per user: uid, name, link, avatar, metadata, status, role, statusMessage, tags, hasBlockedMe, blockedByMe, lastActiveAt
4. Added Error accordion after fetchNext()
5. Added Next Steps CardGroup with 3 cards: "Block Users", "User Presence", "User Management"
The User object table is reused across many pages (login, send-message, etc.) but this is the canonical reference for the full User object shape.
user-management.mdx 1. Added description: "Learn how to create and update users using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.createUser(user, authKey) code, CometChat.updateUser(user) code
3. Added Response accordion after createUser()User object (12 fields)
4. Added Error accordion after createUser()
5. Added Response accordion after updateUser()User object (12 fields)
6. Added Error accordion after updateUser()
7. Added Next Steps CardGroup with 3 cards: "Retrieve Users", "Block Users", "User Presence"
Both user management methods return the full User object on success.
user-presence.mdx 1. Added description: "Learn how to track user online/offline status in real-time using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.addUserListener() code showing onUserOnline/onUserOffline callbacks
3. Added Next Steps CardGroup with 3 cards: "Retrieve Users", "User Management", "Real-Time Listeners"
No response/error accordions — presence is received via listeners, not method calls.
users-overview.mdx 1. Added description: "Overview of CometChat's user management capabilities for Flutter."
2. Added Quick Reference <Info> block listing: Retrieve Users, User Management, Block Users, User Presence with links
3. Added Next Steps CardGroup with 4 cards
Index page for the Users section.
block-users.mdx 1. Added description: "Learn how to block and unblock users in your Flutter app using the CometChat SDK to manage user interactions and privacy."
2. Added Quick Reference <Info> block with: CometChat.blockUsers(uids) code, CometChat.unblockUsers(uids) code, BlockedUsersRequestBuilder with fetchNext() code
3. Added Response accordion after blockUsers()Map<String, dynamic> showing success/failure per UID
4. Added Error accordion after blockUsers()
5. Added Response accordion after unblockUsers() — same Map structure
6. Added Error accordion after unblockUsers()
7. Added Response accordion after fetchNext() for blocked users — List<User> (12 fields per user)
8. Added Error accordion after fetchNext()
9. Added Next Steps CardGroup with 3 cards: "Retrieve Users", "User Management", "User Presence"
The blockUsers()/unblockUsers() methods return a Map<String, dynamic> (not a simple success string) — the response accordion documents this unique return type.
create-group.mdx 1. Added description: "Learn how to create public, private, and password-protected groups using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: Group constructor code for public/private/password types, CometChat.createGroup(group) code
3. Added Response accordion after createGroup()Group object with 15+ fields: guid, name, type ("public"/"private"/"password"), icon, description, owner, metadata, tags, membersCount, createdAt, updatedAt, hasJoined, scope, joinedAt, conversationId
4. Added Error accordion after createGroup()
5. Added Next Steps CardGroup with 3 cards: "Join Group", "Retrieve Groups", "Group Members"
The Group object table is the canonical reference for group data — 15+ fields including membersCount, hasJoined, scope, and conversationId.
join-group.mdx 1. Added description: "Learn how to join public and password-protected groups using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.joinGroup(guid, groupType, password) code
3. Added Response accordion after joinGroup()Group object (same 15+ fields)
4. Added Error accordion after joinGroup()
5. Added Next Steps CardGroup with 3 cards: "Leave Group", "Retrieve Group Members", "Create Group"
Response shows the Group object with hasJoined now true and scope set to "participant".
leave-group.mdx 1. Added description: "Learn how to leave a group using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.leaveGroup(guid) code
3. Added Response accordion after leaveGroup()String success message
4. Added Error accordion after leaveGroup()
5. Added Next Steps CardGroup with 3 cards: "Join Group", "Delete Group", "Retrieve Groups"
Simple method — returns success string on leave.
delete-group.mdx 1. Added description: "Learn how to permanently delete a group in CometChat using the Flutter SDK. Only group admins can delete groups."
2. Added Quick Reference <Info> block with: CometChat.deleteGroup(guid) code
3. Added <Warning>: "Only the group admin can delete a group. Deleting a group is permanent and removes all messages and members."
4. Added Response accordion after deleteGroup()String success message
5. Added Error accordion after deleteGroup()
6. Added Next Steps CardGroup with 3 cards: "Create Group", "Retrieve Groups", "Leave Group"
The admin-only + permanent deletion warning is critical context for developers.
update-group.mdx 1. Added description: "Learn how to update group details using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.updateGroup(group) code
3. Added Response accordion after updateGroup()Group object (15+ fields) with updated values
4. Added Error accordion after updateGroup()
5. Added Next Steps CardGroup with 3 cards: "Create Group", "Retrieve Groups", "Group Members"
Response shows the updated Group object.
transfer-group-ownership.mdx 1. Added description: "Learn how to transfer group ownership to another member using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.transferOwnership(guid, uid) code
3. Added Response accordion after transferOwnership()String success message
4. Added Error accordion after transferOwnership()
5. Added Next Steps CardGroup with 3 cards: "Group Members", "Update Group", "Change Member Scope"
Simple method — returns success string.
retrieve-groups.mdx 1. Added description: "Learn how to fetch and paginate through groups using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: GroupsRequestBuilder code showing ..limit, ..searchKeyword, ..joinedOnly, ..tags, ..withTags filters; fetchNext() code
3. Added Response accordion after fetchNext()List<Group> (15+ fields per group)
4. Added Error accordion after fetchNext()
5. Added Next Steps CardGroup with 3 cards: "Create Group", "Join Group", "Group Members"
Group retrieval response documents the full Group object for each item in the list.
retrieve-group-members.mdx 1. Added description: "Learn how to fetch and paginate through group members using the CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: GroupMembersRequestBuilder("GROUP_ID") code showing ..limit, ..scopes (admin/moderator/participant) filters; fetchNext() code
3. Added <Note>: "Available via: SDK | REST API | UI Kits"
4. Simplified intro paragraph — removed redundant sentence about GroupMembersRequestBuilder
5. Added Response accordion after fetchNext()List<GroupMember> with 14 fields: all 12 User fields plus scope ("admin"/"moderator"/"participant") and joinedAt (epoch timestamp)
6. Added Error accordion after fetchNext()
7. Added Next Steps CardGroup with 3 cards: "Add Members", "Kick Member", "Change Scope"
GroupMember extends User with two additional fields (scope and joinedAt) — the response table documents all 14 fields.
group-add-members.mdx 1. Added description: "Learn how to add members to a group using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.addMembersToGroup(guid, members, bannedMembers) code
3. Added Response accordion after addMembersToGroup()Map<String?, String?> showing success/failure per member UID
4. Added Error accordion
5. Added Next Steps CardGroup with 3 cards: "Retrieve Group Members", "Kick Member", "Change Scope"
The Map response type is unique — it maps each member UID to a success/failure status string.
group-change-member-scope.mdx 1. Added description: "Learn how to change a group member's scope (role) using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.changeMemberScope(guid, uid, scope) code showing scope values: CometChatMemberScope.admin, .moderator, .participant
3. Added Response accordion — String success message
4. Added Error accordion
5. Added Next Steps CardGroup with 3 cards: "Retrieve Group Members", "Add Members", "Transfer Ownership"
Quick Reference shows all three scope enum values.
group-kick-member.mdx 1. Added description: "Learn how to kick, ban, and unban group members using CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.kickGroupMember(guid, uid) code, CometChat.banGroupMember(guid, uid) code, CometChat.unbanGroupMember(guid, uid) code
3. Added Response accordion after kickGroupMember()String success message
4. Added Error accordion after kickGroupMember()
5. Added Response accordion after banGroupMember()String success message
6. Added Error accordion after banGroupMember()
7. Added Response accordion after unbanGroupMember()String success message
8. Added Error accordion after unbanGroupMember()
9. Added Next Steps CardGroup with 3 cards: "Retrieve Group Members", "Add Members", "Change Scope"
All three member moderation methods documented with response/error.
groups-overview.mdx 1. Added description: "Overview of CometChat's group management capabilities for Flutter."
2. Added Quick Reference <Info> block listing: Create Group, Join Group, Leave Group, Delete Group, Update Group, Transfer Ownership, Retrieve Groups, Retrieve Group Members, Add Members, Change Scope, Kick/Ban Members with links
3. Added Next Steps CardGroup with 4 cards
Index page for the Groups section.
default-call.mdx 1. Added description: "Implement complete calling workflow with ringing functionality including incoming/outgoing call UI, call acceptance, rejection, and cancellation in your Flutter app."
2. Added Quick Reference <Info> block with: CometChat.initiateCall(call) code, CometChat.acceptCall(sessionId) code, CometChat.rejectCall(sessionId, status) code with CometChatCallStatus.rejected/.cancelled/.busy, CometChat.endCall(sessionId) code
3. Added <Warning>: "You must generate a call token using CometChatCalls.generateToken() before starting a call session with CometChatCalls.startSession()."
4. Added Response accordion after initiateCall()Call object with 28+ fields: all BaseMessage fields (id, metadata, receiver, sender, conversationId, sentAt, type, category, etc.) PLUS call-specific fields: sessionId ("v1.us.1.xxxxxxxx"), callStatus ("initiated"), action ("initiated"), callInitiator (nested User object), callReceiver (nested User object), initiatedAt (epoch), joinedAt (epoch) — plus nested Sender, Receiver, CallInitiator, and CallReceiver User object tables (12 fields each)
5. Added Error accordion after initiateCall()
6. Added Response accordion after acceptCall()Call object with callStatus = "ongoing", action = "accepted"
7. Added Error accordion after acceptCall()
8. Added Response accordion after rejectCall() (rejected) — Call object with callStatus = "rejected", action = "rejected"
9. Added Error accordion after rejectCall() (rejected)
10. Added Response accordion after rejectCall() (cancelled by initiator) — Call object with callStatus = "cancelled", action = "cancelled"
11. Added Error accordion after rejectCall() (cancelled)
12. Added Response accordion after endCall()Call object with callStatus = "ended", action = "ended"
13. Added Error accordion after endCall()
14. Added Response accordion after CometChatCalls.startSession()Widget? representing the call UI to embed in your screen
15. Added Error accordion after startSession()
16. Added Next Steps CardGroup with 3 cards: "Direct Call", "Standalone Calling", "Call Logs"
This is the single largest file change (+876 lines). The Call object extends BaseMessage with 7 additional call-specific fields (sessionId, callStatus, action, callInitiator, callReceiver, initiatedAt, joinedAt). Each call lifecycle state (initiated, ongoing, rejected, cancelled, ended) has its own Response accordion showing the exact callStatus and action values for that state — this is critical for developers building custom call UIs who need to know which status values to check. The startSession() response is unique — it returns a Flutter Widget? that developers embed in their screen to show the call interface.
direct-call.mdx 1. Added description: "Implement direct calling without ringing functionality — generate a token and start a call session directly."
2. Added Quick Reference <Info> block with: CometChatCalls.generateToken(sessionId, userAuthToken) code, CometChatCalls.startSession(callToken, callSettings) code with CallSettingsBuilder showing ..enableDefaultLayout, ..listener
3. Added Response accordion after generateToken()String call token
4. Added Error accordion after generateToken()
5. Added Response accordion after startSession()Widget? call UI widget
6. Added Error accordion after startSession()
7. Added Next Steps CardGroup with 3 cards: "Default Call", "Standalone Calling", "Recording"
Direct calling skips the ringing flow — the Quick Reference shows the simplified two-step process (generate token → start session).
standalone-calling.mdx 1. Added description: "Implement standalone calling that works independently of CometChat's messaging infrastructure."
2. Added Quick Reference <Info> block with: standalone CometChatCalls.init() code, generateToken() code, startSession() code
3. Added Response accordion after generateToken()String call token
4. Added Error accordion
5. Added Response accordion after startSession()Widget? call UI widget
6. Added Error accordion
7. Added Next Steps CardGroup with 3 cards: "Default Call", "Direct Call", "Call Logs"
Standalone calling is for apps that only need calling (no chat). The Quick Reference shows the independent init flow.
calling-setup.mdx 1. Added description: "Learn how to install and initialize the CometChat Calls SDK for Flutter to enable voice and video calling in your application."
2. Added Quick Reference <Info> block with: cometchat_calls_sdk: ^4.0.x install yaml, CometChatCalls.init(callAppSettings) code with CallAppSettingsBuilder showing ..appId, ..region
3. Added Response accordion after CometChatCalls.init()String success message: "CometChat Calls SDK initialized successfully"
4. Added Error accordion after CometChatCalls.init()
5. Added Next Steps CardGroup with 3 cards: "Default Call", "Direct Call", "Standalone Calling"
The Calls SDK has its own separate init method (CometChatCalls.init()) distinct from the main SDK's CometChat.init().
calling-overview.mdx 1. Added description: "Implement voice and video calling in your Flutter application with CometChat's calling SDK, supporting ringing calls, direct calls, and standalone calling."
2. Added Quick Reference <Info> block summarizing three calling modes: Default Calling (with ringing, requires chat SDK), Direct Calling (no ringing, requires chat SDK), Standalone Calling (independent, no chat SDK needed) — with use-case guidance for each
3. Added Next Steps CardGroup with 4 cards: "Calling Setup", "Default Call", "Direct Call", "Standalone Calling"
The Quick Reference is a decision guide — helps developers choose between the three calling modes based on their use case.
call-logs.mdx 1. Added description: "Learn how to fetch and manage call logs in your Flutter application using CometChat's Call SDK, including filtering by call type, status, and direction."
2. Added Quick Reference <Info> block with: CallLogRequestBuilder code showing ..limit, ..callType, ..callStatus, ..callDirection filters; fetchNext()/fetchPrevious() code; CometChatCalls.getCallDetails(sessionId) code
3. Added Response accordion after fetchNext()List<CallLog> with 10+ fields: sessionId, callType ("audio"/"video"), callStatus ("initiated"/"ongoing"/"ended"/"cancelled"/"rejected"/"busy"/"unanswered"), callDirection ("incoming"/"outgoing"), initiator (User object), receiver (User object), initiatedAt, endedAt, duration, participants
4. Added Error accordion after fetchNext()
5. Added Response accordion after fetchPrevious() — same structure
6. Added Error accordion after fetchPrevious()
7. Added Response accordion after getCallDetails()List<CallLog> for a specific session
8. Added Error accordion after getCallDetails()
9. Added Next Steps CardGroup with 3 cards: "Default Call", "Recording", "Presenter Mode"
The CallLog object is distinct from the Call object — it's a historical record with duration, endedAt, and participants fields not present on the real-time Call object.
recording.mdx 1. Added description: "Learn how to enable and manage call recording in your Flutter app using CometChat's Calls SDK."
2. Added Quick Reference <Info> block with: recording configuration in CallSettingsBuilder (..enableRecording), fetch recordings code
3. Added Response accordion after fetching recordings — recording object with recordingUrl, recordingDuration, startedAt, endedAt
4. Added Error accordion
5. Added Next Steps CardGroup with 3 cards: "Call Logs", "Default Call", "Presenter Mode"
Recording response includes the recordingUrl for playback/download.
presenter-mode.mdx 1. Added description: "Learn how to implement presenter mode in your Flutter app for webinars, online classes, and broadcast-style calling experiences with CometChat."
2. Added Quick Reference <Info> block with: PresentationSettingsBuilder code showing ..enableDefaultLayout, ..isPresenter = true (presenter) and ..isPresenter = false (viewer); CometChatCalls.joinPresentation(callToken, settings) code for both roles
3. Added Response accordion after joinPresentation()Widget? representing the presentation UI, documented as: "A Flutter widget containing the presentation UI. Display this widget in your screen to show the presentation interface."
4. Added Error accordion after joinPresentation()code ("ERR_CHAT_API_FAILURE"), message ("Failed to start the presentation session."), details ("The call token provided is invalid or expired.")
5. Added Next Steps CardGroup with 3 cards: "Default Call", "Recording", "Video View Customisation"
This was the final file updated (commit 9feb900b). The Quick Reference shows both presenter and viewer code side-by-side so developers can see the isPresenter flag difference.
video-view-customisation.mdx 1. Added description: "Learn how to customize the video view in CometChat calls for Flutter."
2. Added Quick Reference <Info> block with: video view customization code
3. Added Next Steps CardGroup with 3 cards: "Presenter Mode", "Default Call", "Recording"
No response/error accordions — this page covers UI customization, not SDK method calls.
real-time-listeners.mdx 1. Added description: "Complete reference for all real-time event listeners in the CometChat Flutter SDK."
2. Added Quick Reference <Info> block listing all 5 listener types with their key callbacks: MessageListener (onTextMessageReceived, onMediaMessageReceived, onCustomMessageReceived, onMessageEdited, onMessageDeleted, onMessagesDelivered, onMessagesRead, onTypingStarted, onTypingEnded, onTransientMessageReceived), UserListener (onUserOnline, onUserOffline), GroupListener (onGroupMemberJoined, onGroupMemberLeft, onGroupMemberKicked, onGroupMemberBanned, onGroupMemberUnbanned, onGroupMemberScopeChanged, onMemberAddedToGroup), CallListener (onIncomingCallReceived, onOutgoingCallAccepted, onOutgoingCallRejected, onIncomingCallCancelled), ConnectionListener (onConnected, onConnecting, onDisconnected, onFeatureThrottled)
3. Added Next Steps CardGroup with 3 cards: "Receive Messages", "Connection Status", "Login Listeners"
The Quick Reference is a comprehensive callback catalog — developers can scan all available listener callbacks in one place without reading the full page.
login-listeners.mdx 1. Added description: "Learn how to handle login and logout state changes using LoginListener in CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: CometChat.addLoginListener() code showing onLoginSuccess, onLoginFailure, onLogoutSuccess, onLogoutFailure callbacks
3. Added Next Steps CardGroup with 3 cards: "Authentication", "Real-Time Listeners", "Connection Status"
Login listeners help developers react to auth state changes (e.g., auto-redirect on logout).
connection-status.mdx 1. Added description: "Monitor real-time WebSocket connection status with CometChat SDK using ConnectionListener callbacks and getConnectionStatus method."
2. Added Quick Reference <Info> block with: CometChat.addConnectionListener() code showing onConnected, onConnecting, onDisconnected, onFeatureThrottled callbacks; CometChat.getConnectionStatus() code returning CometChatConnectionStatus.connected/.connecting/.disconnected
3. Added Next Steps CardGroup with 3 cards: "Connection Behaviour", "Real-Time Listeners", "Login Listeners"
The Quick Reference shows both the listener approach (reactive) and the getConnectionStatus() approach (polling) for monitoring connection state.
connection-behaviour.mdx 1. Added description: "Understand how CometChat SDK manages WebSocket connections in auto and manual modes, including background behavior and reconnection handling."
2. Added Quick Reference <Info> block comparing Auto Mode (default — SDK manages connections automatically) vs Manual Mode (autoEstablishSocketConnection = false — developer controls connect()/disconnect()/ping())
3. Added Response accordion after CometChat.connect()String success message
4. Added Error accordion after CometChat.connect()
5. Added Response accordion after CometChat.disconnect()String success message
6. Added Error accordion after CometChat.disconnect()
7. Added Response accordion after CometChat.ping()String success message
8. Added Error accordion after CometChat.ping()
9. Added Next Steps CardGroup with 3 cards: "Connection Status", "Real-Time Listeners", "Setup"
The auto vs manual mode comparison in the Quick Reference is a key decision point for developers — most should use auto mode, but apps with specific background requirements may need manual mode.
session-timeout.mdx 1. Added description: "Learn how to configure session timeout behavior in CometChat Flutter SDK."
2. Added Quick Reference <Info> block with: session timeout configuration code
3. Added Next Steps CardGroup with 3 cards: "Authentication", "Connection Behaviour", "Login Listeners"
No response/error accordions — session timeout is a configuration, not a method call.
rate-limits.mdx 1. Added description: "Understand the API rate limits for CometChat Flutter SDK operations."
2. Added Quick Reference <Info> block summarizing rate limit categories and their values (messages per second, API calls per minute, etc.)
3. Added Next Steps CardGroup with 3 cards: "Send Messages", "Retrieve Conversations", "Setup"
The Quick Reference gives developers a quick view of rate limits without reading the full table.
advanced-overview.mdx 1. Added description: "Advanced SDK features including connection management, real-time listeners, and login state handling for Flutter applications."
2. Added Quick Reference <Info> block listing 4 advanced features with one-line descriptions and links: Connection Status (monitor SDK connection state), Connection Behaviour (understand connection lifecycle), Login Listeners (handle login state changes), Real-Time Listeners (all event listeners reference)
3. Added Next Steps CardGroup with 4 cards: "Connection Status", "Real-Time Listeners", "Login Listeners", "Connection Behaviour"
Index page for the Advanced section.
resources-overview.mdx 1. Added description frontmatter
2. Added Quick Reference <Info> block listing resource topics
3. Added Next Steps CardGroup
Index page for the Resources section.
flutter-overview.mdx 1. Added description frontmatter
2. Added Quick Reference <Info> block with high-level SDK capabilities: real-time messaging, voice/video calling, user/group management, typing indicators, read receipts, file sharing, reactions, mentions, interactive messages, AI features
3. Added Next Steps CardGroup with 4 cards: "Overview/Setup", "Key Concepts", "Authentication", "Send Messages"
Top-level Flutter SDK overview — the Quick Reference gives a feature checklist.
upgrading-from-v3-guide.mdx 1. Added description: "Guide for migrating your Flutter app from CometChat SDK v3 to v4."
2. Added Quick Reference <Info> block summarizing key v3→v4 breaking changes and migration steps
3. Added Next Steps CardGroup with 3 cards: "Setup", "Authentication", "Key Concepts"
The Quick Reference gives a scannable migration checklist.
ai-agents.mdx 1. Added description: "Learn how to integrate AI Agents in your Flutter app to enable intelligent, automated interactions that process user messages, trigger tools, and respond with contextually relevant information."
2. Added Quick Reference <Info> block with: CometChat.addAIAssistantListener("LISTENER_ID", AIAssistantListener(onAIAssistantEventReceived: (event) {})) code, CometChat.addMessageListener("LISTENER_ID", MessageListener(onAIAssistantMessageReceived: (msg) {}, onAIToolResultReceived: (result) {})) code, CometChat.removeAIAssistantListener("LISTENER_ID") cleanup code
3. Added <Note>: "Available via: SDK | REST API | UI Kits | Dashboard"
4. Added <Warning>: "Always remove AI Assistant listeners when they're no longer needed (e.g., on widget dispose or page navigation). Failing to remove listeners can cause memory leaks and duplicate event handling."
5. Added Next Steps CardGroup with 3 cards: "AI Moderation", "AI Chatbots", "Extensions"
The Quick Reference shows both the AI-specific listener (AIAssistantListener) and the message listener callbacks for AI events (onAIAssistantMessageReceived, onAIToolResultReceived). The memory leak warning is especially important for AI listeners since they may be added in multiple screens.
ai-moderation.mdx 1. Added description: "Learn how to implement AI-powered content moderation in your Flutter app using CometChat SDK to automatically review messages for inappropriate content."
2. Added Quick Reference <Info> block with: moderation check code showing message.metadata["@injected"]["extensions"]["ai-moderation"] path, status values ("approved", "pending", "rejected"), real-time listener for moderation status updates
3. Added Response accordion after sending a moderated message — BaseMessage with metadata containing nested @injected.extensions.ai-moderation object with fields: status ("pending"), confidence (number), categories (array of flagged categories)
4. Added Error accordion
5. Added Response accordion for real-time moderation status update — same metadata structure with status changed to "approved" or "rejected"
6. Added Error accordion
7. Added Next Steps CardGroup with 4 cards: "AI Agents", "AI Chatbots", "Send Messages", "Extensions"
The moderation metadata path (@injected.extensions.ai-moderation) is deeply nested — the Response accordion documents the exact path developers need to access moderation results. The two Response accordions show the initial "pending" state and the final "approved"/"rejected" state.
ai-chatbots-overview.mdx 1. Added description: "Configure AI-powered chatbots to provide automated assistance and maintain conversational momentum in your Flutter app."
2. Added Quick Reference <Info> block summarizing: chatbot configuration via Dashboard, chatbot types (rule-based, AI-powered), integration with messaging flow
3. Added Next Steps CardGroup with 4 cards: "AI Agents", "AI Moderation", "AI User Copilot", "Extensions"
Index page for AI chatbots — no SDK method calls, so no response/error accordions.
extensions-overview.mdx 1. Added description: "Explore CometChat extensions that add enhanced functionality to your Flutter chat application"
2. Added Quick Reference <Info> block listing all extension categories: User Experience (Pin message, Link preview, Thumbnails, Voice transcription), User Engagement (Polls, Reactions, Mentions, Message translation, Stickers), Collaboration (Whiteboard, Collaborative documents), Notifications (Push, Email, SMS), Moderation (Content filtering, Profanity detection), Security (Disappearing messages, End-to-end encryption) — with link to full Extensions Overview
3. Added <Note>: "Available via: SDK | REST API | UI Kits"
4. Added Next Steps CardGroup with 3 cards: "AI Features", "Webhooks", "Setup"
The Quick Reference is a comprehensive extension catalog organized by category — developers can quickly find which extension they need.
webhooks-overview.mdx 1. Added description: "Configure server-side webhooks to receive real-time notifications for messages, users, groups, calls, and moderation events in your Flutter application."
2. Added Quick Reference <Info> block with: setup requirements (HTTPS endpoint, publicly accessible URL, POST method with application/json, return HTTP 200 OK), event categories (Messages: message_sent/message_edited/message_deleted/message_read_receipt; Users: user_blocked/user_unblocked/user_connection_status_changed; Groups: group_created/group_member_added/group_member_left; Calls: call_initiated/call_started/call_ended/recording_generated; Moderation: moderation_engine_approved/moderation_engine_blocked), configuration link to Dashboard
3. Added <Note>: "Webhooks are configured at the application level through the CometChat Dashboard, not within the Flutter SDK. The SDK handles real-time events via listeners, while webhooks deliver events to your backend server."
4. Added Next Steps CardGroup with 3 cards: "Extensions", "Real-Time Listeners", "AI Agents"
The Quick Reference lists all webhook event names — this is valuable for backend developers who need to know which events to listen for. The <Note> clarifies the SDK vs webhook distinction (SDK = client-side listeners, webhooks = server-side HTTP callbacks).