# ChannelList Hooks

`ChannelList` manages a `channels` state array and updates it using internal hooks. You can’t override the hooks directly, but you can override many event handlers via props. See the `ChannelList` [event listener docs](/chat/docs/sdk/react/v13/components/core-components/channel_list#event-listeners/).

## Best Practices

- Prefer event handler props over forking internal hooks.
- Keep handler logic lightweight to avoid blocking list updates.
- Align custom behavior with the default hook intent (e.g., list ordering on new messages).
- Use `usePaginatedChannels` behavior as the model for infinite scrolling.
- Avoid direct state mutations; rely on setters or returned handlers.

## Hooks

### useChannelDeletedListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useChannelDeletedListener.ts) that handles the deletion of a channel from the list.

### useChannelHiddenListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useChannelHiddenListener.ts) that handles the hiding of a channel from the list.

### useChannelTruncatedListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useChannelTruncatedListener.ts) that handles when a channel's history is truncated.

### useChannelUpdatedListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useChannelUpdatedListener.ts) that handles when a channel is updated.

### useChannelVisibleListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useChannelVisibleListener.ts) that handles when a channel is made visible and added to the list.

### useConnectionRecoveredListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useConnectionRecoveredListener.ts) that handles when connection is recovered and forces an update of the list.

### useMessageNewListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useMessageNewListener.ts) that handles `message.new` events and updates the list.

### useNotificationAddedToChannelListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useNotificationAddedToChannelListener.ts) that handles when a user is added to the list of channel members; moves channel to top of list and starts watching.

### useNotificationMessageNewListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useNotificationMessageNewListener.ts) that handles when a new message is added to a channel; moves channel to top of list and starts watching.

### useNotificationRemovedFromChannelListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.ts) that handles when a user is removed from the list of channel members; removes channel from list.

### usePaginatedChannels

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/usePaginatedChannels.ts) that handles pagination and the querying of the channels for the list.

### useUserPresenceChangedListener

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useUserPresenceChangedListener.ts) that handles when a user's status changes (ex: online, offline, etc.).

### useMobileNavigation

A [custom hook](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelList/hooks/useMobileNavigation.ts) that handles the opening and closing of a mobile navigation via Javascript click event listeners, not Stream events.


---

This page was last updated at 2026-04-21T09:53:41.799Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react/v13/hooks/channel_list_hooks/](https://getstream.io/chat/docs/sdk/react/v13/hooks/channel_list_hooks/).