# useChannelActions

Creates imperative channel action handlers such as `pin`, `archive`, `leave`, and `mute`.

## Best Practices

- Use these handlers directly in row actions and action sheets.
- Guard UI against repeated taps while async actions are pending.
- Use direct-chat specific actions (`muteUser`, `blockUser`) only when applicable.
- Keep channel lifecycle actions (`leave`, `deleteChannel`) behind confirmation UI.
- Handle optimistic UI updates separately from these network calls.

## Usage

```tsx
import { useChannelActions } from "stream-chat-react-native";

const actions = useChannelActions(channel);

await actions.muteChannel();
await actions.archive();
```

## Parameters

| Name    | Type      | Required | Description                    |
| ------- | --------- | -------- | ------------------------------ |
| channel | `Channel` | Yes      | Channel to perform actions on. |

## Returns

| Type             | Description                                       |
| ---------------- | ------------------------------------------------- |
| `ChannelActions` | Action handlers for pin/archive/mute/block flows. |


---

This page was last updated at 2026-04-17T17:33:46.367Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/hooks/channel-list/use-channel-actions/](https://getstream.io/chat/docs/sdk/react-native/hooks/channel-list/use-channel-actions/).