Skip to main content
Offer a unified discovery screen for users and groups and launch new chats quickly using CometChat V6 UIKit.

Overview

The “New Chat” feature provides a screen where users can browse available users and groups to start a new conversation.

Integration

Create a New Chat Screen

import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
import 'package:flutter/material.dart';

class NewChatScreen extends StatelessWidget {
  const NewChatScreen({super.key});

  void _openChat(BuildContext context, {User? user, Group? group}) {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (_) => Scaffold(
          appBar: CometChatMessageHeader(user: user, group: group),
          body: SafeArea(
            child: Column(
              children: [
                Expanded(child: CometChatMessageList(user: user, group: group)),
                CometChatMessageComposer(user: user, group: group),
              ],
            ),
          ),
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          title: const Text('New Chat'),
          bottom: const TabBar(
            tabs: [
              Tab(text: 'Users'),
              Tab(text: 'Groups'),
            ],
          ),
        ),
        body: TabBarView(
          children: [
            CometChatUsers(
              hideAppbar: true,
              onItemTap: (user) => _openChat(context, user: user),
            ),
            CometChatGroups(
              hideAppbar: true,
              onItemTap: (group) => _openChat(context, group: group),
            ),
          ],
        ),
      ),
    );
  }
}

Launch from a FAB

FloatingActionButton(
  onPressed: () {
    Navigator.push(
      context,
      MaterialPageRoute(builder: (_) => const NewChatScreen()),
    );
  },
  child: const Icon(Icons.chat),
)