Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cometchat avatar

Cometchat Flutter V5 Conversations

  • 4 installs
  • 70 repo stars
  • Updated June 23, 2026
  • cometchat/cometchat-skills

Use the CometChat Flutter UIKit v5 CometChatConversations component and its props to display and customize a recent-conversations list.

About

Documents the CometChat Flutter UIKit v5 CometChatConversations component, its props, and its view-slot callbacks. A developer uses it when building or customizing the recent-chats list in a v5 Flutter app.

  • Full prop table for CometChatConversations including request builder and view slots
  • Notes asymmetric single-arg trailingView callback signature

Cometchat Flutter V5 Conversations by the numbers

  • 4 all-time installs (skills.sh)
  • Ranked #874 of 1,039 Mobile Development skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cometchat/cometchat-skills --skill cometchat-flutter-v5-conversations

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs4
repo stars70
Last updatedJune 23, 2026
Repositorycometchat/cometchat-skills

What it does

Use the CometChat Flutter UIKit v5 CometChatConversations component and its props to display and customize a recent-conversations list.

Files

SKILL.mdMarkdownGitHub ↗

CometChat Flutter UIKit v5 — Conversations

The CometChatConversations component displays a list of recent conversations.

Key Props

PropTypeDefaultDescription
conversationsRequestBuilderConversationsRequestBuilder?Custom fetch builder
conversationsStyleCometChatConversationsStyleconst CometChatConversationsStyle()Visual styling
onItemTapFunction(Conversation)?Tap callback (no BuildContext)
onItemLongPressFunction(Conversation)?Long press callback
subtitleViewWidget? Function(BuildContext, Conversation)?Custom subtitle
listItemViewWidget Function(Conversation)?Custom list item (replaces the whole row)
leadingViewWidget? Function(BuildContext, Conversation)?Custom leading widget (avatar slot)
titleViewWidget? Function(BuildContext, Conversation)?Custom title widget
trailingViewWidget? Function(Conversation)?Custom trailing widget (single-arg — asymmetric with the other slots)
titleString?List title
showBackButtonboolfalseShow back button
onBackVoidCallback?Back button callback
hideAppbarbool?falseHide app bar
appBarOptionsList<Widget>?App bar trailing widgets
usersStatusVisibilitybool?trueShow online status
receiptsVisibilitybool?trueShow read receipts
textFormattersList<CometChatTextFormatter>?Text formatters for subtitles
controllerTagString?Custom GetX controller tag
hideSearchbool?Hide search bar
searchReadOnlyboolfalseRead-only search
onSearchTapGestureTapCallback?Search tap callback
deleteConversationOptionVisibilitybool?trueShow delete option
loadingStateViewWidgetBuilder?Custom loading state
emptyStateViewWidgetBuilder?Custom empty state
errorStateViewWidgetBuilder?Custom error state
setOptionsFunction?Replace long-press options
addOptionsFunction?Add to long-press options

Basic Usage

CometChatConversations(
  onItemTap: (conversation) {
    User? user;
    Group? group;
    if (conversation.conversationWith is User) {
      user = conversation.conversationWith as User;
    } else {
      group = conversation.conversationWith as Group;
    }
    Navigator.push(context, MaterialPageRoute(
      builder: (_) => MessagesScreen(user: user, group: group),
    ));
  },
)

Custom Request Builder

CometChatConversations(
  conversationsRequestBuilder: ConversationsRequestBuilder()
    ..limit = 30
    ..conversationType = ConversationType.user,
)

Internal Architecture (GetX)

The component creates CometChatConversationsController via Get.put() in initState() and deletes it in dispose() (unless controllerTag is provided externally).

Theme values are cached in didChangeDependencies() (unconditionally, no flag):

@override
void didChangeDependencies() {
  typography = CometChatThemeHelper.getTypography(context);
  colorPalette = CometChatThemeHelper.getColorPalette(context);
  spacing = CometChatThemeHelper.getSpacing(context);
  style = CometChatThemeHelper.getTheme<CometChatConversationsStyle>(
      context: context, defaultTheme: CometChatConversationsStyle.of)
    .merge(widget.conversationsStyle);
  super.didChangeDependencies();
}

Anti-Patterns

// ❌ WRONG — trying to access controller before component mounts
final controller = Get.find<CometChatConversationsController>();

// ❌ WRONG — manually creating controller outside the widget
Get.put(CometChatConversationsController(...));

// ❌ WRONG — not extracting User/Group from conversation
onItemTap: (conversation) {
  Navigator.push(context, MaterialPageRoute(
    builder: (_) => MessagesScreen(user: conversation.conversationWith), // Type error
  ));
}

Checklist — Conversations

  • [ ] onItemTap extracts User/Group from conversation.conversationWith with type check
  • [ ] Navigation to messages screen passes extracted user or group
  • [ ] Let the widget manage its own GetX controller lifecycle

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.