ChatsScreen

fun ChatsScreen(    modifier: Modifier = Modifier,     navigator: ThreePaneNavigator = rememberThreePaneNavigator(),     channelViewModelFactory: ChannelViewModelFactory = ChannelViewModelFactory(),     mentionListViewModelFactory: MentionListViewModelFactory = MentionListViewModelFactory(),     threadsViewModelFactory: ThreadsViewModelFactory = ThreadsViewModelFactory(),     messagesViewModelFactoryProvider: MessagesViewModelFactoryProvider = DefaultMessagesViewModelFactoryProvider(),     title: String = "Stream Chat",     searchMode: SearchMode = SearchMode.None,     listContentMode: ChatListContentMode = ChatListContentMode.Channels,     onBackPress: () -> Unit = {},     onListTopBarAvatarClick: (User?) -> Unit = {},     onListTopBarActionClick: () -> Unit = {},     onDetailTopBarTitleClick: (channel: Channel) -> Unit = {},     onViewChannelInfoClick: (channel: Channel) -> Unit = {},     listTopBarContent: @Composable () -> Unit = { DefaultListTopBarContent( viewModelFactory = channelViewModelFactory, title = title, onAvatarClick = onListTopBarAvatarClick, onActionClick = onListTopBarActionClick, ) },     listBottomBarContent: @Composable () -> Unit = {},     detailTopBarContent: @Composable (viewModelFactory: MessagesViewModelFactory, BackAction) -> Unit = { viewModelFactory, backAction -> DefaultDetailTopBarContent( viewModelFactory = viewModelFactory, backAction = backAction, onTitleClick = onDetailTopBarTitleClick, ) },     detailBottomBarContent: @Composable (viewModelFactory: MessagesViewModelFactory) -> Unit = { viewModelFactory -> DefaultDetailBottomBarContent(viewModelFactory = viewModelFactory) },     infoContent: @Composable (arguments: Any?) -> Unit = {})

Represents a complete screen for chat, including a list of channels, threads, and messages. The layout adapts based on the screen size, showing a single-pane layout on smaller screens and a dual-pane layout on larger screens with an optional info pane.

Parameters

modifier

The modifier to be applied to the root layout of the screen.

navigator

The navigator used for managing the navigation between destinations. Defaults to rememberThreePaneNavigator.

channelViewModelFactory

Factory for creating the ChannelListViewModel used for managing channel data.

mentionListViewModelFactory

Factory for creating the MentionListViewModel used for managing mentions data.

threadsViewModelFactory

Factory for creating the ThreadListViewModel used for managing thread data.

messagesViewModelFactoryProvider

A lambda function that provides a MessagesViewModelFactory for managing messages within a selected channel. The factory is created dynamically based on the selected channel and message context (if any). When the initial MessagesViewModelFactory is requested (before a channel is selected), channelId, messageId, and parentMessageId are null.

title

The title displayed in the list pane top bar. Default is "Stream Chat".

searchMode

The current search mode. Default is SearchMode.None.

listContentMode

The mode for displaying the list content. Default is ChatListContentMode.Channels.

onBackPress

Callback invoked when the user presses the back button.

onListTopBarAvatarClick

Callback invoked when the user clicks on the avatar in the list pane top bar.

onListTopBarActionClick

Callback invoked when the user clicks on the action icon in the list pane top bar.

onDetailTopBarTitleClick

Callback invoked when the user clicks on the title in the detail pane top bar.

onViewChannelInfoClick

Callback invoked when the user long presses a channel and clicks "View Info".

listTopBarContent

The content to display at the top of the list pane.

listBottomBarContent

The content to display at the bottom of the list pane.

detailTopBarContent

The content to display at the top of the detail pane.

detailBottomBarContent

The content to display at the bottom of the detail pane.

infoContent

The content to display in the optional info pane given the provided arguments.