Skip to main content
FieldValue
Packagecometchat_chat_uikit
Key componentsCometChatContacts, CometChatUsers, CometChatGroups, CometChatAvatar
InitCometChatUIKit.init(uiKitSettings) then CometChatUIKit.login(uid)
Entry pointAvatar menu → “Create Conversation” → CometChatContacts
Sample appGitHub
RelatedAll Guides
New Chat enables users to start one-on-one or group conversations by selecting from a searchable contact list. Before starting, complete the Getting Started guide.

Components

Component / ClassRole
CometChatAvatarDisplays the user avatar in the app bar
PopupMenuButtonShows menu options when the avatar is tapped
CometChatContactsUI for the “Start Conversation” screen with tabs
CometChatContactsControllerManages tab switching and item selection
CometChatUsersLists users with search and selection
CometChatGroupsLists groups with search and selection
PageManagerHandles navigation to the chat screen

Integration Steps

1. Add Avatar Menu

Show the avatar in the app bar and open a menu on tap with “Create Conversation” option. File: dashboard.dart
PopupMenuButton(
  icon: CometChatAvatar(
    width: 40,
    height: 40,
    image: CometChatUIKit.loggedInUser?.avatar,
    name: CometChatUIKit.loggedInUser?.name,
  ),
  itemBuilder: (context) => [
    PopupMenuItem(value: '/Create', child: Text("Create Conversation")),
  ],
  onSelected: (value) {
    if (value == '/Create') {
      Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => CometChatContacts()),
      );
    }
  },
);

2. Open Contacts Screen

Navigate to the CometChatContacts screen which provides tabs for Users and Groups. File: dashboard.dart
void openCreateConversation(BuildContext context) {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => CometChatContacts()),
  );
}

3. Handle User/Group Selection

Wire up the onItemTap callback to navigate to the chat screen when a user or group is selected. File: cometchat_contacts_controller.dart
CometChatUsers(
  hideAppbar: true,
  onItemTap: (context, user) => _onItemTap(context: context, user: user),
);

CometChatGroups(
  hideAppbar: true,
  onItemTap: (context, group) => _onItemTap(context: context, group: group),
);

4. Navigate to Chat

Open the chat screen for the selected user or group using PageManager. File: page_manager.dart
void _onItemTap({required BuildContext context, User? user, Group? group}) {
  if (user != null) {
    PageManager.navigateToMessages(context: context, user: user);
  } else if (group != null) {
    JoinProtectedGroupUtils.onGroupItemTap(context, group);
  }
}

Feature Matrix

FeatureComponent / MethodFile
Avatar menuPopupMenuButton, CometChatAvatardashboard.dart
Contacts screenCometChatContactsdashboard.dart
List usersCometChatUserscometchat_contacts_controller.dart
List groupsCometChatGroupscometchat_contacts_controller.dart
Handle selection_onItemTappage_manager.dart
Navigate to chatPageManager.navigateToMessagespage_manager.dart

Next Steps