ChannelMemberList

The full, searchable list of a channel's members. It renders a search input over a paginated FlatList of members and opens a per-member actions sheet when a row is tapped. Needs to be wrapped in a ChannelDetailsContextProvider that supplies the channel.

This is the component rendered behind the "view all" entry point of ChannelDetails. Render it yourself to build a custom, full-screen members screen — for example a dedicated navigation route instead of a modal.

ChannelMemberList

Best Practices

  • Wrap it in ChannelDetailsContextProvider so the list can resolve the channel.
  • Render it as a full-screen route (or any container you control) and supply your own header — ChannelMemberList no longer ships its own modal chrome.
  • Customize the per-member actions through ChannelMemberActionsSheet's getChannelMemberActionItems instead of rebuilding the sheet.
  • Override and configure building blocks like ChannelMemberItem or ChannelMemberActionsSheet by wrapping the list in WithComponents with an overrides map.

General Usage

import {
  OverlayProvider,
  Chat,
  ChannelDetailsContextProvider,
  ChannelMemberList,
} from "stream-chat-react-native";

const ChannelMembersScreen = () => {
  return (
    <OverlayProvider>
      <Chat client={client}>
        <ChannelDetailsContextProvider channel={channel}>
          <ChannelMemberList />
        </ChannelDetailsContextProvider>
      </Chat>
    </OverlayProvider>
  );
};

Props

PropDescriptionType
additionalFlatListPropsOverride the underlying FlatList props of the list.Partial<FlatListProps<ChannelMemberResponse>>
searchInputPropsAdditional props forwarded to the search input.SearchInputProps
searchSourceA custom ChannelMemberSearchSource used to query and paginate members. Overrides the source created by default (pre-configured to autocomplete by name).ChannelMemberSearchSource

Building blocks

ChannelMemberList renders a ChannelMemberItem per member and opens a ChannelMemberActionsSheet on press. Both are sourced from the components context and can be overridden through WithComponents.

ChannelMemberItem

A single member row. It renders the member's roles as badges via the overridable RoleList/RoleItem components.

PropDescriptionType
member *The member to render.ChannelMemberResponse
getMemberRolesOverride the roles shown next to the member; returns an array of { key, label }. Defaults to the built-in Owner / Admin / Moderator logic.GetMemberRoles
onPressFired when the row is pressed.(member: ChannelMemberResponse) => void
sizeVisual size of the row. 'sm' (default) is a compact row; 'lg' is a profile-style header.'sm' | 'lg'
testIDTest identifier.string

RoleList

The horizontal list of role badges rendered inside ChannelMemberItem. Each badge is rendered by the overridable RoleItem component. Sourced from the components context and overridable through WithComponents.

PropDescriptionType
roles *The roles to render, as an array of { key, label }.RoleLabel[]

RoleItem

A single role badge (pill). owner roles use the accent (blue) palette; every other role uses the neutral (grey) palette. Colors are themeable via theme.channelDetails.roleItem (ownerBackgroundColor, ownerColor, roleBackgroundColor, roleColor). Sourced from the components context and overridable through WithComponents.

PropDescriptionType
role *The role to render, as a { key, label } pair.RoleLabel
viewStyleStyle applied to the badge container, layered over the theme override.StyleProp<ViewStyle>
textStyleStyle applied to the badge label, layered over the theme override.StyleProp<TextStyle>

ChannelAddMembersButton

A button that opens the add-members form (ChannelAddMembersForm) in a modal. Useful as a header action on a custom members screen.

PropDescriptionType
onPressOverride the default behavior, which opens the add-members modal.() => void
styleStyle forwarded to the underlying Button.ButtonProps['style']
variantRender the button as an icon or a text button.'icon' | 'text'
testIDTest identifier.string

ChannelMemberActionsSheet

Opened when a member is tapped. It renders a ChannelMemberItem (size='lg') header followed by ChannelDetailsActionItem rows.

PropDescriptionType
member *The member the actions apply to.ChannelMemberResponse
onClose *Fired when the sheet is closed.() => void
visible *Controls sheet visibility.boolean
getChannelMemberActionItemsCustomize the list of action items rendered in the per-member actions sheet.GetChannelMemberActionItems