---
source_url: https://www.pubnub.com/docs/chat/components/react/custom-hooks/use-user-memberships
title: useUserMemberships for PubNub Chat Components for React
updated_at: 2026-05-22T11:04:05.539Z
---

> Documentation Index
> For a curated overview of PubNub documentation, see: https://www.pubnub.com/docs/llms.txt
> For the full list of all documentation pages, see: https://www.pubnub.com/docs/llms-full.txt


# useUserMemberships for PubNub Chat Components for React

:::warning Migrate to Chat SDK
PubNub will stop supporting Chat Components on January 1, 2025 but you are [welcome to contribute](https://github.com/pubnub/react-chat-components). Learn how to migrate to the Chat SDK [here](https://www.pubnub.com/docs/general/resources/migration-guides/react-components-chat-sdk).
:::

The hook returns a list of channel memberships for a user.

This method doesn't return user's subscriptions. Pagination is handled internally. You can adjust the `limit` of returned channels on a single call (max/default `100`) and call a function returned by the hook to get another page of results.

This hook also sets up a listener that reacts to removals of already fetched channels. Updates and new memberships are not handled due to technical limitations. However, this behavior requires a living subscription to the user getting updated - this should be handled by the components.

:::note User ID / UUID
User ID is also referred to as **UUID/uuid** in some APIs and server responses but **holds the value** of the **userId** parameter you [set during initialization](https://www.pubnub.com/docs/general/setup/users-and-devices#set-the-user-id).
:::

```tsx
const [channels, fetchPage, refetchMemberships, total, error, isLoading] = useUserMemberships({
  uuid: "user",
});

return (
  <Chat {...{ options }}>
    <ChannelList channels={channels} />
  </Chat>
);
```

## Input

| Parameter | Defaults | Description |
| --- | --- | --- |
| include | Object | Optional |  | n/a | Option to include respective additional fields in the response. |
| → customFields | Boolean | Optional |  | `false` | Option to fetch `custom` fields or not. |
| → channelFields | Boolean | Optional |  | `false` | Option to include fields for channels metadata. |
| → customChannelFields | Boolean | Optional |  | `false` | Option to include custom fields for channels metadata. |
| filter | String | Optional |  | n/a | Expression used to filter the results. Only objects whose properties satisfy the given expression are returned. See the [App Context Filtering Language Definition](https://www.pubnub.com/docs/general/metadata/filtering) for more details. |
| sort | Object | Optional |  | n/a | Key-value pair of a property to sort by and a sort direction. Available options are `id`, `name`, and `updated`. Use `asc` or `desc` to specify sort direction, or specify `null` to take the default sort direction (ascending). Example: `{name: 'asc'}` |
| limit | Number | Optional |  | `100` | Number of objects to return in response. Default is `100` which is also the maximum value. |

## Output

| Parameter | Description |
| --- | --- |
| `array[0]`Type: ChannelData[] | List of returned channels. |
| `array[1]`Type: Function | Function that can be called to fetch another page of channels. |
| `array[2]`Type: Function | Function that can be called to completely reset the hook. This can be used in case of expected membership updates. |
| `array[3]`Type: Number | Total number of stored channels. |
| `array[4]`Type: Error | If there's an error fetching channels, it will be available here. |
| `array[5]`Type: Boolean | Indicator that the user membership data is still being loaded. |