Skip to main content


The CallParticipantsInfoView component represents a popup that lets the user see more information about a particular call and its participants. It allows you to see which participants are in the call, what their mute state is and attempt to trigger different actions based on your own capabilities.

On top of that, the menu allows you to invite other people to the call.

Let's see how to use the component.


If you want to use the componant as a standalone, you can create it like this:

let view = CallParticipantsInfoView(callViewModel: viewModel)

The required parameters for this method are:

  • callViewModel - the call view model used for the call.

Additionally, if you are using our ViewFactory and the default view, you can customize or swap this view with your own implementation. In order to do that, you should implement the method makeParticipantsListView:

func makeParticipantsListView(
viewModel: CallViewModel
) -> some View {
callViewModel: viewModel,

The component also provides a view that you can use to invite members to the call. You can provide your own list of users that should be browsable in the view. In order to do that, you should implement the UserListProvider protocol.

The protocol has one method loadNextUsers(pagination: Pagination), that returns a list of users:

func loadNextUsers(pagination: Pagination) async throws -> [User] {
// load the users, based on the pagination parameter provided

The Pagination model consists of the following properties:

  • pageSize - the size of the page
  • offset - the current pagination offset

In order to inject your custom implementation, you need to provide it in the creation of the Utils class:

let utils = Utils(userListProvider: MockUserListProvider())
let streamVideoUI = StreamVideoUI(streamVideo: streamVideo, utils: utils)

Did you find this page helpful?