> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-agent-in-group-react-v6.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Implementing Block/Unblock User in Flutter with CometChat UIKit

> Block and unblock users in CometChat Flutter UI Kit with blockUsers and unblockUsers methods for privacy and moderation.

Enable users to block and unblock other users in your Flutter chat app using CometChat's `blockUsers` and `unblockUsers` methods.

## Overview

The Block User feature lets one user prevent another from sending messages or interacting with them. Essential for user privacy, spam control, and moderation.

## Prerequisites

* A Flutter project with CometChat UIKit Flutter V6 installed
* Initialized CometChat credentials (`appID`, `region`, `authKey`)

## Components

| Component                            | Role                                     |
| :----------------------------------- | :--------------------------------------- |
| `CometChatUIKit.blockUsers([...])`   | SDK method to block specified user(s)    |
| `CometChatUIKit.unblockUsers([...])` | SDK method to unblock specified user(s)  |
| `ElevatedButton`                     | Flutter widget for block/unblock actions |

## Integration Steps

### Add "Block User" Button

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ElevatedButton(
      onPressed: () async {
        try {
          await CometChatUIKit.blockUsers([user.uid]);
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('${user.name} has been blocked')),
          );
        } catch (e) {
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('Error blocking user: $e')),
          );
        }
      },
      child: Text('Block User'),
    )
    ```
  </Tab>
</Tabs>

### Add "Unblock User" Button

<Tabs>
  <Tab title="Dart">
    ```dart theme={null}
    ElevatedButton(
      onPressed: () async {
        try {
          await CometChatUIKit.unblockUsers([user.uid]);
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('${user.name} has been unblocked')),
          );
        } catch (e) {
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('Error unblocking user: $e')),
          );
        }
      },
      child: Text('Unblock User'),
    )
    ```
  </Tab>
</Tabs>

## Customization Options

* Conditional Rendering: Display "Block" or "Unblock" based on `user.blockedByMe` state
* Modal Confirmation: Wrap actions in `showDialog` for confirmation prompts
* Self-Block Prevention: Disable the button if `user.uid == loggedInUser.uid`

## Summary

| Feature      | Method                               |
| :----------- | :----------------------------------- |
| Block User   | `CometChatUIKit.blockUsers([...])`   |
| Unblock User | `CometChatUIKit.unblockUsers([...])` |
