CallParticipantsList

Display participants in a FlatList with vertical or horizontal scrolling.

This component depends on a flex container to calculate the width and height of the participant view, hence it should be used only in a flex parent container

Our CallContent component internally uses CallParticipantsList inside Call layouts components (CallParticipantsGrid and CallParticipantsSpotlight).

Call Participants List Vertical

Call Participants List Horizontal

General Usage

Display all participants as a FlatList. Default: vertical layout with 2 participants per row (customizable via props).

import {
  Call,
  CallParticipantsList,
  StreamCall,
  useParticipants,
} from "@stream-io/video-react-native-sdk";

const VideoCallUI = () => {
  let call: Call;
  const allParticipants = useParticipants();

  return (
    <StreamCall call={call}>
      <CallParticipantsList participants={allParticipants} />
    </StreamCall>
  );
};

Props

participants

The list of participants to list in the view.

numberOfColumns

TypeDefault Value
number | undefined2

The number of participants to be displayed in a single row. This property is only used when there are more than 2 participants.

horizontal

TypeDefault Value
boolean | undefinedfalse

This decides whether the participants should be listed vertically or horizontally.

landscape

Applies the landscape mode styles to the component, if true.

Type
boolean | undefined

mirror

Forces participant's video to be mirrored or unmirrored. By default, video track from the local participant is mirrored, and all other videos are not mirrored.

Type
boolean

ParticipantLabel

Component to customize the Label of the participant.

TypeDefault Value
ComponentType| undefinedParticipantLabel

ParticipantReaction

Component to customize the participant reaction display.

TypeDefault Value
ComponentType| undefinedParticipantReaction

ParticipantVideoFallback

Component to customize the video fallback of the participant, when the video is disabled.

TypeDefault Value
ComponentType| undefinedParticipantVideoFallback

ParticipantNetworkQualityIndicator

Component to customize the network quality indicator of the participant.

TypeDefault Value
ComponentType| undefinedParticipantNetworkQualityIndicator

VideoRenderer

Component to customize the participant video. Also displays the ParticipantVideoFallback.

The VideoRenderer accepts a mirror?: boolean prop to force mirroring on or off. When provided, it takes precedence over the default mirroring logic.

TypeDefault Value
ComponentType| undefinedVideoRenderer

Props

PropTypeDefault ValueDescription
participantStreamVideoParticipantThe participant whose video or screenshare should be rendered.
trackTypevideoTrack | screenShareTrackvideoTrackThe track to render.
isVisiblebooleantrueWhen false, the video stream is not shown even if it is available.
objectFit'contain' | 'cover' | undefinedundefinedHow the video fits within its container. When omitted, a default is computed from the track dimensions.
videoZOrdernumber0The z-order to apply to the underlying RTC view.
mirrorboolean | undefinedundefinedForces mirroring on or off. When omitted, the default mirroring logic is used.
ParticipantVideoFallbackComponentType | null | undefinedParticipantVideoFallbackComponent to render when video is unavailable. Use null to disable the fallback.

ParticipantView

Prop to customize the ParticipantView component entirely.

TypeDefault Value
ComponentType| undefinedParticipantView