Info:
This is documentation for Stream Chat React Native SDK v8, which is no longer actively maintained. For up-to-date documentation, see the latest version (v9).

ChannelAvatar

Renders a channel avatar inside ChannelList.

Best Practices

  • Keep avatar rendering lightweight to avoid list performance issues.
  • Use PreviewAvatar to wrap interactions without altering ChannelAvatar internals.
  • Ensure touch targets are accessible when adding custom onPress.
  • Use the context-provided ImageComponent for consistent image handling.
  • Avoid inline handlers when rendering large lists; memoize where possible.

General Usage

Customize it and pass it via PreviewAvatar on ChannelList.

Example with an onPress handler:

import { TouchableOpacity } from "react-native-gesture-handler";
import { ChannelList, ChannelAvatar } from "stream-chat-react-native";

<ChannelList
  PreviewAvatar={({ channel }) => (
    <TouchableOpacity
      disallowInterruption={true}
      onPress={() => {
        /** Handler for press action */
      }}
    >
      <ChannelAvatar channel={channel} />
    </TouchableOpacity>
  )}
/>;

Props

channel

Channel instance from the Stream Chat client.

Type
Channel

UI Component Props

ImageComponent

Drop-in replacement for all underlying Image components in the SDK. Useful for offline image caching. See the Offline Support Guide.

Type Default
ComponentType Image
Add Chat to my app: getstream.io/SKILL.md

The fastest way to build with Stream. Start a new project or improve an existing one. Full CLI and documentation integration out of the box.


Ask your agent:

/stream Build me a Social App with Feeds and Moderation.
/stream Any livestream calls running?
/stream Chat React Native v8: <Your Question>