> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-skills-v5-temp.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 blockUser and unblockUser methods for privacy and moderation.

<Accordion title="AI Integration Quick Reference">
  | Field         | Value                                                                                                                  |
  | ------------- | ---------------------------------------------------------------------------------------------------------------------- |
  | Package       | `cometchat_chat_uikit`                                                                                                 |
  | Import        | `import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';`                                                     |
  | Purpose       | Block and unblock users in CometChat Flutter UI Kit with blockUser and unblockUser methods for privacy and moderation. |
  | Key methods   | `blockUser()` · `unblockUser()`                                                                                        |
  | Prerequisites | `CometChatUIKit` initialised and a user logged in.                                                                     |
  | Related       | [Users](/ui-kit/flutter/users)                                                                                         |
</Accordion>

Enable users to block and unblock other users in your Flutter chat app using CometChat's `blockUser` and `unblockUser` 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                                     |
| :----------------------------- | :--------------------------------------- |
| `CometChat.blockUser([...])`   | SDK method to block specified user(s)    |
| `CometChat.unblockUser([...])` | 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 CometChat.blockUser([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 CometChat.unblockUser([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   | `CometChat.blockUser([...])`   |
| Unblock User | `CometChat.unblockUser([...])` |
