> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-rn-guide-message-privately.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Events

> Handle CometChat Flutter UI Kit events for users, groups, messages, conversations, calls, and UI-level interactions.

## Overview

Events allow for a decoupled, flexible architecture where different parts of the application can interact without having to directly reference each other. This makes it easier to create complex, interactive experiences, as well as to extend and customize the functionality provided by the CometChat UI Kit.

> The event system is identical between V5 and V6. All event classes, listeners, and APIs work the same way.

### User Events

`CometChatUserEvents` emit events when the logged-in user executes actions on another user.

1. `ccUserBlocked`: Triggered when the logged-in user blocks another user.
2. `ccUserUnblocked`: Triggered when the logged-in user unblocks another user.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';

    class _YourScreenState extends State<YourScreen> with CometChatUserEventListener {
      @override
      void initState() {
        super.initState();
        CometChatUserEvents.addUsersListener("listenerId", this);
      }

      @override
      void dispose() {
        super.dispose();
        CometChatUserEvents.removeUsersListener("listenerId");
      }

      @override
      void ccUserBlocked(User user) {
        // Handle user blocked
      }

      @override
      void ccUserUnblocked(User user) {
        // Handle user unblocked
      }

      @override
      Widget build(BuildContext context) {
        return const Placeholder();
      }
    }
    ```
  </Tab>
</Tabs>

***

### Group Events

`CometChatGroupEvents` emits events when the logged-in user performs actions related to groups.

1. `ccGroupCreated`: Triggered when the logged-in user creates a group.
2. `ccGroupDeleted`: Triggered when the logged-in user deletes a group.
3. `ccGroupLeft`: Triggered when the logged-in user leaves a group.
4. `ccGroupMemberScopeChanged`: Triggered when the logged-in user changes the scope of another group member.
5. `ccGroupMemberBanned`: Triggered when the logged-in user bans a group member.
6. `ccGroupMemberKicked`: Triggered when the logged-in user kicks a group member.
7. `ccGroupMemberUnbanned`: Triggered when the logged-in user unbans a user.
8. `ccGroupMemberJoined`: Triggered when the logged-in user joins a group.
9. `ccGroupMemberAdded`: Triggered when the logged-in user adds new members.
10. `ccOwnershipChanged`: Triggered when the logged-in user transfers ownership.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';

    class _YourScreenState extends State<YourScreen> with CometChatGroupEventListener {
      @override
      void initState() {
        super.initState();
        CometChatGroupEvents.addGroupsListener("listenerId", this);
      }

      @override
      void dispose() {
        super.dispose();
        CometChatGroupEvents.removeGroupsListener("listenerId");
      }

      @override
      void ccGroupCreated(Group group) {
        // Handle group created
      }

      @override
      void ccGroupDeleted(Group group) {
        // Handle group deleted
      }

      @override
      Widget build(BuildContext context) {
        return const Placeholder();
      }
    }
    ```
  </Tab>
</Tabs>

***

### Message Events

`CometChatMessageEvents` emits events related to messages.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';

    class _YourScreenState extends State<YourScreen> with CometChatMessageEventListener {
      @override
      void initState() {
        super.initState();
        CometChatMessageEvents.addMessagesListener("listenerId", this);
      }

      @override
      void dispose() {
        super.dispose();
        CometChatMessageEvents.removeMessagesListener("listenerId");
      }

      @override
      Widget build(BuildContext context) {
        return const Placeholder();
      }
    }
    ```
  </Tab>
</Tabs>

***

### Conversation Events

`CometChatConversationEvents` emits events related to conversations.

1. `ccConversationDeleted`: Triggered when a conversation is deleted.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';

    class _YourScreenState extends State<YourScreen> with CometChatConversationEventListener {
      @override
      void initState() {
        super.initState();
        CometChatConversationEvents.addConversationListListener("listenerId", this);
      }

      @override
      void dispose() {
        super.dispose();
        CometChatConversationEvents.removeConversationListListener("listenerId");
      }

      @override
      void ccConversationDeleted(Conversation conversation) {
        // Handle conversation deleted
      }

      @override
      Widget build(BuildContext context) {
        return const Placeholder();
      }
    }
    ```
  </Tab>
</Tabs>

***

### UI Events

`CometChatUIEvents` emits events related to UI interactions.

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    // UI events are used internally by the UI Kit widgets
    // to communicate state changes across components
    ```
  </Tab>
</Tabs>
