# useChannelMembershipState

Reads `channel.state.membership` reactively for channel-list UI decisions.

## Best Practices

- Use this hook to drive membership-specific UI (pinned, archived, etc.).
- Treat the return value as read-only state from the channel store.
- Handle `undefined` when channel is unavailable.
- Keep derived booleans memoized in large list rows.
- Avoid duplicating membership state in local component state.

## Usage

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

const membership = useChannelMembershipState(channel);
const isArchived = Boolean(membership?.archived_at);
```

## Parameters

| Name    | Type      | Required | Description                       |
| ------- | --------- | -------- | --------------------------------- |
| channel | `Channel` | No       | Channel whose membership is read. |

## Returns

| Type                                   | Description                           |
| -------------------------------------- | ------------------------------------- |
| `ChannelMemberResponse` \| `undefined` | Membership data for the current user. |


---

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

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