Preserve Search State and Keyword in CometChatSearch
Introduce built-in state persistence support for the CometChatSearch component in the Flutter UI Kit so that previously entered search keywords and search results are retained when users navigate away from and reopen the search screen during the same app session. Currently, the search state resets completely upon reopening the component, forcing users to re-enter search queries and repeat the search process. This behavior negatively impacts usability, especially in workflows involving frequent navigation between conversations and search results. Providing automatic state retention or exposing properties/callbacks to preserve and restore the search context would align the component with modern search UX standards, improve user experience, and reduce the need for custom state-management implementations.
💡 Feature Request
Preserve Search State and Keyword in CometChatSearch
Introduce built-in state persistence support for the CometChatSearch component in the Flutter UI Kit so that previously entered search keywords and search results are retained when users navigate away from and reopen the search screen during the same app session. Currently, the search state resets completely upon reopening the component, forcing users to re-enter search queries and repeat the search process. This behavior negatively impacts usability, especially in workflows involving frequent navigation between conversations and search results. Providing automatic state retention or exposing properties/callbacks to preserve and restore the search context would align the component with modern search UX standards, improve user experience, and reduce the need for custom state-management implementations.
💡 Feature Request
Add Inline Pre-Send URL Preview Support in Message Composer
Introduce native support for inline URL preview generation within CometChatMessageComposer in the Flutter UI Kit. Currently, link preview metadata is fetched and displayed only after the message has been successfully sent, whereas modern messaging applications such as WhatsApp and Microsoft Teams provide real-time preview generation while the user is composing the message. This feature should detect valid URLs as they are typed or pasted, fetch preview metadata before sending, and display a dynamic preview card inline above the composer. Supporting pre-send link previews would significantly improve user confidence, enhance the messaging experience, and align the UI Kit with modern chat application standards without requiring developers to build complex custom implementations.
💡 Feature Request
Add Inline Pre-Send URL Preview Support in Message Composer
Introduce native support for inline URL preview generation within CometChatMessageComposer in the Flutter UI Kit. Currently, link preview metadata is fetched and displayed only after the message has been successfully sent, whereas modern messaging applications such as WhatsApp and Microsoft Teams provide real-time preview generation while the user is composing the message. This feature should detect valid URLs as they are typed or pasted, fetch preview metadata before sending, and display a dynamic preview card inline above the composer. Supporting pre-send link previews would significantly improve user confidence, enhance the messaging experience, and align the UI Kit with modern chat application standards without requiring developers to build complex custom implementations.
💡 Feature Request
Add Mention Text Styling Support in Message Information Section
Introduce dedicated styling support for mention text (e.g., @username) within the Message Information section of the UI Kit. Currently, mention names rendered in this view do not respect any customizable styling properties, making it difficult to maintain UI consistency with the main message list where mention styling is typically configurable. This limitation prevents developers from aligning colors, fonts, and emphasis for mentions across different parts of the application. Providing a property such as mentionTextStyle or a granular customization hook for mentions specifically within the Message Information component would ensure visual consistency, improve flexibility, and eliminate the need for complex custom overrides.
💡 Feature Request
Add Mention Text Styling Support in Message Information Section
Introduce dedicated styling support for mention text (e.g., @username) within the Message Information section of the UI Kit. Currently, mention names rendered in this view do not respect any customizable styling properties, making it difficult to maintain UI consistency with the main message list where mention styling is typically configurable. This limitation prevents developers from aligning colors, fonts, and emphasis for mentions across different parts of the application. Providing a property such as mentionTextStyle or a granular customization hook for mentions specifically within the Message Information component would ensure visual consistency, improve flexibility, and eliminate the need for complex custom overrides.
💡 Feature Request
Support Editing of Media Message Captions in Message Composer
Introduce native support in the UI Kit and SDK for editing captions of media messages (such as images, videos, audio, and documents) directly within the message composer. Currently, while developers can implement captions for media using custom CometChatMessageTemplate, there is no built-in mechanism to edit these captions once the message is sent. This limitation forces developers to create complex custom workflows, which do not integrate seamlessly with the existing composer or editing flow. Providing a standardized solution—where media captions can be edited similar to text messages within the composer—would ensure consistency, reduce implementation overhead, and significantly improve both developer experience and end-user usability.
💡 Feature Request
Support Editing of Media Message Captions in Message Composer
Introduce native support in the UI Kit and SDK for editing captions of media messages (such as images, videos, audio, and documents) directly within the message composer. Currently, while developers can implement captions for media using custom CometChatMessageTemplate, there is no built-in mechanism to edit these captions once the message is sent. This limitation forces developers to create complex custom workflows, which do not integrate seamlessly with the existing composer or editing flow. Providing a standardized solution—where media captions can be edited similar to text messages within the composer—would ensure consistency, reduce implementation overhead, and significantly improve both developer experience and end-user usability.
💡 Feature Request
Add In-Chat Message Search Bar in Message Screen
Introduce a native in-chat search functionality within the message screen of the UI Kit, allowing users to search messages directly inside an active conversation (similar to apps like WhatsApp). Currently, there is no built-in support for an integrated search bar within the message view, which limits usability and impacts the overall user experience. This feature should enable users to quickly search, navigate, and highlight messages within a conversation without leaving the chat screen. Providing this as a configurable UI Kit component or property would enhance usability, maintain UI consistency, and eliminate the need for custom implementations, thereby improving developer experience and end-user satisfaction.
💡 Feature Request
Add In-Chat Message Search Bar in Message Screen
Introduce a native in-chat search functionality within the message screen of the UI Kit, allowing users to search messages directly inside an active conversation (similar to apps like WhatsApp). Currently, there is no built-in support for an integrated search bar within the message view, which limits usability and impacts the overall user experience. This feature should enable users to quickly search, navigate, and highlight messages within a conversation without leaving the chat screen. Providing this as a configurable UI Kit component or property would enhance usability, maintain UI consistency, and eliminate the need for custom implementations, thereby improving developer experience and end-user satisfaction.
💡 Feature Request
Real-time block/unblock event listener for the blocked user
Currently, the CometChat SDK provides real-time events only for the user who initiates the block action (ccUserBlocked / ccUserUnBlocked). The blocked user (User B) does not receive any real-time event when another user (User A) blocks or unblocks them. The hasBlockedMe flag on the user object is only updated when the user object is explicitly fetched from the server via CometChat.getUser() or on screen navigation. This makes it impossible to update the blocked user's UI in real-time without relying on workarounds such as polling, send-failure detection, or a webhook-based backend solution. The request is to add a new real-time listener event (e.g., onUserBlockedMe / onUserUnblockedMe) in the SDK's UserListener that fires on the blocked user's client when they are blocked or unblocked by another user. This would allow UIKit and app developers to immediately hide the composer, show a "You have been blocked" indicator, and update the conversation list without requiring server-side infrastructure or manual user object re-fetching.
💡 Feature Request
Real-time block/unblock event listener for the blocked user
Currently, the CometChat SDK provides real-time events only for the user who initiates the block action (ccUserBlocked / ccUserUnBlocked). The blocked user (User B) does not receive any real-time event when another user (User A) blocks or unblocks them. The hasBlockedMe flag on the user object is only updated when the user object is explicitly fetched from the server via CometChat.getUser() or on screen navigation. This makes it impossible to update the blocked user's UI in real-time without relying on workarounds such as polling, send-failure detection, or a webhook-based backend solution. The request is to add a new real-time listener event (e.g., onUserBlockedMe / onUserUnblockedMe) in the SDK's UserListener that fires on the blocked user's client when they are blocked or unblocked by another user. This would allow UIKit and app developers to immediately hide the composer, show a "You have been blocked" indicator, and update the conversation list without requiring server-side infrastructure or manual user object re-fetching.
💡 Feature Request
Enable Message Bubble Styling in Message Information (Flutter UI Kit)
Introduce direct styling support for the message bubble displayed in the CometChatMessageInformation component within the Flutter UI Kit. Currently, the message bubble shown in the Message Information view does not respect configurations provided via messageInformationStyle, resulting in inconsistent UI compared to the main message list. Developers are unable to customize properties such as background color, text color, or overall appearance, and the only available workaround is overriding the entire listItemView, which increases complexity and maintenance overhead. Providing a dedicated property such as messageBubbleStyle or a granular customization hook for the message bubble would ensure design consistency, improve developer experience, and maintain the modular integrity of the UI Kit without requiring full component overrides.
💡 Feature Request
Enable Message Bubble Styling in Message Information (Flutter UI Kit)
Introduce direct styling support for the message bubble displayed in the CometChatMessageInformation component within the Flutter UI Kit. Currently, the message bubble shown in the Message Information view does not respect configurations provided via messageInformationStyle, resulting in inconsistent UI compared to the main message list. Developers are unable to customize properties such as background color, text color, or overall appearance, and the only available workaround is overriding the entire listItemView, which increases complexity and maintenance overhead. Providing a dedicated property such as messageBubbleStyle or a granular customization hook for the message bubble would ensure design consistency, improve developer experience, and maintain the modular integrity of the UI Kit without requiring full component overrides.
💡 Feature Request
Add Direct Styling Support for “Edited” Message Label in UI Kit
Introduce properties or override mechanism in the UI Kit to allow developers to customize the “Edited” message label (e.g., color, font, visibility) without requiring a full override of the statusInfoView. Currently, the label is internally rendered alongside timestamp and read receipts, making it inaccessible for direct styling and forcing developers to rebuild the entire status layer for minor UI changes. This leads to increased complexity, duplication, and maintenance overhead, especially in production environments where UI consistency is critical. Providing a property such as editedMessageTextStyle or a granular override hook for just the “Edited” label would significantly improve developer experience while preserving the modularity and purpose of the UI Kit.
💡 Feature Request
Add Direct Styling Support for “Edited” Message Label in UI Kit
Introduce properties or override mechanism in the UI Kit to allow developers to customize the “Edited” message label (e.g., color, font, visibility) without requiring a full override of the statusInfoView. Currently, the label is internally rendered alongside timestamp and read receipts, making it inaccessible for direct styling and forcing developers to rebuild the entire status layer for minor UI changes. This leads to increased complexity, duplication, and maintenance overhead, especially in production environments where UI consistency is critical. Providing a property such as editedMessageTextStyle or a granular override hook for just the “Edited” label would significantly improve developer experience while preserving the modularity and purpose of the UI Kit.
💡 Feature Request
Global edge network for calling
Introduce a global edge network architecture for the calling infrastructure to reduce connection setup time and improve call quality for users connecting across different geographic regions. The current system experiences higher latency due to centralized routing, which impacts call initiation speed and overall user experience. This feature would leverage regionally distributed edge nodes to route calls through the nearest available servers, minimizing round-trip time and enabling faster call connections.
💡 Feature Request
Global edge network for calling
Introduce a global edge network architecture for the calling infrastructure to reduce connection setup time and improve call quality for users connecting across different geographic regions. The current system experiences higher latency due to centralized routing, which impacts call initiation speed and overall user experience. This feature would leverage regionally distributed edge nodes to route calls through the nearest available servers, minimizing round-trip time and enabling faster call connections.
💡 Feature Request
Reliable outgoing message callback for JS SDK / Vue UI Kit
Hi CometChat team — opening this issue first per contributing guidance to discuss the API need. We need a reliable way to track new messages after initial load in an active DM thread. Our flow is: On chat open, fetch a small history window to establish baseline count. After that, increment count in realtime for: incoming messages outgoing messages sent by the local user/device Incoming events are fine, but we don’t have a dependable/supported outgoing “message sent” callback path in our JS SDK + Vue UI Kit integration for same-session sends. Could you provide an official hook/callback for successful local sends (SDK or UI Kit), e.g.: onMessageSent / onTextMessageSent (same device/session), or Vue UI Kit emit like @message-sent from chat/composer. This would let apps maintain accurate post-load counters without brittle workarounds (patching send methods, polling, DOM observers). Stack @cometchat/chat-sdk-javascript 4.x @cometchat/chat-uikit-vue 4.x Vue 3 DM chats
💡 Feature Request
Reliable outgoing message callback for JS SDK / Vue UI Kit
Hi CometChat team — opening this issue first per contributing guidance to discuss the API need. We need a reliable way to track new messages after initial load in an active DM thread. Our flow is: On chat open, fetch a small history window to establish baseline count. After that, increment count in realtime for: incoming messages outgoing messages sent by the local user/device Incoming events are fine, but we don’t have a dependable/supported outgoing “message sent” callback path in our JS SDK + Vue UI Kit integration for same-session sends. Could you provide an official hook/callback for successful local sends (SDK or UI Kit), e.g.: onMessageSent / onTextMessageSent (same device/session), or Vue UI Kit emit like @message-sent from chat/composer. This would let apps maintain accurate post-load counters without brittle workarounds (patching send methods, polling, DOM observers). Stack @cometchat/chat-sdk-javascript 4.x @cometchat/chat-uikit-vue 4.x Vue 3 DM chats
💡 Feature Request
Support REST API to Fetch Active User Count for a Group
This feature request aims to introduce a dedicated REST API endpoint that allows developers to retrieve the current active user count for a specific group in real time. The API should return the number of users who are currently online or actively engaged within the group, based on presence or activity status. This functionality is important for use cases such as displaying live participation metrics, enhancing user engagement insights, and enabling dynamic UI elements (e.g., “X users active now”). The endpoint should be scalable, performant for large groups, and consistent with existing authentication and group management APIs. Additionally, considerations around how “active” is defined (e.g., online presence, recent activity threshold) should be clearly documented and configurable if possible.
💡 Feature Request
Support REST API to Fetch Active User Count for a Group
This feature request aims to introduce a dedicated REST API endpoint that allows developers to retrieve the current active user count for a specific group in real time. The API should return the number of users who are currently online or actively engaged within the group, based on presence or activity status. This functionality is important for use cases such as displaying live participation metrics, enhancing user engagement insights, and enabling dynamic UI elements (e.g., “X users active now”). The endpoint should be scalable, performant for large groups, and consistent with existing authentication and group management APIs. Additionally, considerations around how “active” is defined (e.g., online presence, recent activity threshold) should be clearly documented and configurable if possible.
💡 Feature Request
Custom Color Picker in Rich Text Editor (React & React Native)
Summary Add a custom color picker to the Rich Text Editor in both React and React Native. Problem Currently limited color options restrict formatting flexibility. Proposed Solution Allow custom text and background colors Support HEX/RGB input Include color palette + recent colors Ensure consistency across React & React Native Impact Improves user experience and enables better content customization.
💡 Feature Request
Custom Color Picker in Rich Text Editor (React & React Native)
Summary Add a custom color picker to the Rich Text Editor in both React and React Native. Problem Currently limited color options restrict formatting flexibility. Proposed Solution Allow custom text and background colors Support HEX/RGB input Include color palette + recent colors Ensure consistency across React & React Native Impact Improves user experience and enables better content customization.
💡 Feature Request
API for Unique Conversations List with Total Message Count
Request to introduce an API that returns a list of unique conversations along with the total number of messages in each conversation. This will help efficiently track conversation activity and enable better analytics and UI representation without requiring multiple API calls.
💡 Feature Request
API for Unique Conversations List with Total Message Count
Request to introduce an API that returns a list of unique conversations along with the total number of messages in each conversation. This will help efficiently track conversation activity and enable better analytics and UI representation without requiring multiple API calls.
💡 Feature Request
Support Custom Ordering of Conversation List in Angular v4 UI Kit
Currently, the Angular UI Kit does not provide a way to customize or control the ordering of the conversation list. Conversations are displayed based on the default sorting logic, which may not align with all application requirements. We need the ability to control how conversations are ordered—for example, sorting by latest message, unread count, pinned conversations, or custom business logic.
💡 Feature Request
Support Custom Ordering of Conversation List in Angular v4 UI Kit
Currently, the Angular UI Kit does not provide a way to customize or control the ordering of the conversation list. Conversations are displayed based on the default sorting logic, which may not align with all application requirements. We need the ability to control how conversations are ordered—for example, sorting by latest message, unread count, pinned conversations, or custom business logic.
💡 Feature Request
Support for Multi-Select Voting and Poll Closing in Polls Extension
We would like to request enhancements to the Polls extension to support more advanced polling use cases commonly required in production applications. Feature Requests: Multi-Select Voting Allow users to select and vote for multiple options within a single poll. API should support submitting multiple option IDs in a single vote request. Results should reflect aggregated multi-option selections per user. Poll Closing / Disabling Voting Ability to close a poll manually or automatically (e.g., after a time limit or based on a condition). Introduce a status field (e.g., open, closed) accessible via API. Prevent further votes once the poll is closed. UI support to render closed polls as non-interactive.
💡 Feature Request
Support for Multi-Select Voting and Poll Closing in Polls Extension
We would like to request enhancements to the Polls extension to support more advanced polling use cases commonly required in production applications. Feature Requests: Multi-Select Voting Allow users to select and vote for multiple options within a single poll. API should support submitting multiple option IDs in a single vote request. Results should reflect aggregated multi-option selections per user. Poll Closing / Disabling Voting Ability to close a poll manually or automatically (e.g., after a time limit or based on a condition). Introduce a status field (e.g., open, closed) accessible via API. Prevent further votes once the poll is closed. UI support to render closed polls as non-interactive.
💡 Feature Request
Add support for code block color customization in React Native UIKit
Currently, the React Native UIKit does not provide any props or theming options to customize the appearance of code blocks within the RichTextEditor. While properties like codeTextColor and codeBackgroundColor are available in the iOS UIKit, they are missing in the React Native implementation. This leads to inconsistent behavior across platforms and limits customization for developers.
💡 Feature Request
Add support for code block color customization in React Native UIKit
Currently, the React Native UIKit does not provide any props or theming options to customize the appearance of code blocks within the RichTextEditor. While properties like codeTextColor and codeBackgroundColor are available in the iOS UIKit, they are missing in the React Native implementation. This leads to inconsistent behavior across platforms and limits customization for developers.
💡 Feature Request
Support for Picture-in-Picture (PiP) and In-App Call Minimization in iOS SDK
We request support for enhanced video call multitasking capabilities in the CometChat iOS SDK. Specifically, this includes: Native integration with Apple’s AVPictureInPictureController to enable system-level Picture-in-Picture (PiP), allowing users to continue video calls in a floating window while using other apps. A built-in feature or UI component to minimize an ongoing call into a draggable floating view within the app, enabling users to navigate across different screens without disconnecting the call. These features would significantly improve the user experience by enabling seamless multitasking during video calls and aligning with modern iOS app behavior.
💡 Feature Request
Support for Picture-in-Picture (PiP) and In-App Call Minimization in iOS SDK
We request support for enhanced video call multitasking capabilities in the CometChat iOS SDK. Specifically, this includes: Native integration with Apple’s AVPictureInPictureController to enable system-level Picture-in-Picture (PiP), allowing users to continue video calls in a floating window while using other apps. A built-in feature or UI component to minimize an ongoing call into a draggable floating view within the app, enabling users to navigate across different screens without disconnecting the call. These features would significantly improve the user experience by enabling seamless multitasking during video calls and aligning with modern iOS app behavior.
💡 Feature Request
Add Offline Caching Support for Conversations in React Native UI Kit
n CometChat React Native UI Kit, the Conversations and Chat components re-render/reinitialize every time the screen regains focus, causing UI lag and brief freezes. A built-in offline caching mechanism is needed to persist conversations and messages locally, so the UI can reuse existing data instead of rebuilding on each navigation. This would ensure smoother transitions, reduce unnecessary re-renders, and enable incremental updates instead of full reloads.
💡 Feature Request
Add Offline Caching Support for Conversations in React Native UI Kit
n CometChat React Native UI Kit, the Conversations and Chat components re-render/reinitialize every time the screen regains focus, causing UI lag and brief freezes. A built-in offline caching mechanism is needed to persist conversations and messages locally, so the UI can reuse existing data instead of rebuilding on each navigation. This would ensure smoother transitions, reduce unnecessary re-renders, and enable incremental updates instead of full reloads.
💡 Feature Request
Support Closing UI Kit Modals via Overlay Click
Currently, all default modals provided by the UI Kit can only be closed through explicit button actions (e.g., close or cancel buttons). In our application, we follow a UX pattern where modals can also be dismissed by clicking on the overlay (outside the modal content). This behavior is already implemented in our custom modals, and we would like to have the same capability in the UI Kit modals for consistency.
💡 Feature Request
Support Closing UI Kit Modals via Overlay Click
Currently, all default modals provided by the UI Kit can only be closed through explicit button actions (e.g., close or cancel buttons). In our application, we follow a UX pattern where modals can also be dismissed by clicking on the overlay (outside the modal content). This behavior is already implemented in our custom modals, and we would like to have the same capability in the UI Kit modals for consistency.
💡 Feature Request
Support 24-Hour Date Format and Localization in Angular v4 UI Kit
We need support for 24-hour time format and proper date localization in the Angular v4 UI Kit. Currently, the UI Kit does not provide a way to configure or customize the time format or adapt date/time display based on locale. This limits the ability to align the UI with regional preferences and user expectations.
💡 Feature Request
Support 24-Hour Date Format and Localization in Angular v4 UI Kit
We need support for 24-hour time format and proper date localization in the Angular v4 UI Kit. Currently, the UI Kit does not provide a way to configure or customize the time format or adapt date/time display based on locale. This limits the ability to align the UI with regional preferences and user expectations.
💡 Feature Request