From 5e689ff667bf067d95e518e9ae0113f5846d9ff6 Mon Sep 17 00:00:00 2001 From: PetarVelikov Date: Fri, 31 Jan 2025 09:29:24 +0100 Subject: [PATCH 1/3] [AND-294] PinnedMessageList stateless component factories. --- .../api/stream-chat-android-compose.api | 16 +++ .../compose/ui/pinned/PinnedMessageItem.kt | 16 +-- .../compose/ui/pinned/PinnedMessageList.kt | 36 ++----- .../compose/ui/theme/ChatComponentFactory.kt | 100 ++++++++++++++++++ 4 files changed, 134 insertions(+), 34 deletions(-) diff --git a/stream-chat-android-compose/api/stream-chat-android-compose.api b/stream-chat-android-compose/api/stream-chat-android-compose.api index a85628bb407..ac3ee9524a9 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -2137,6 +2137,14 @@ public abstract interface class io/getstream/chat/android/compose/ui/theme/ChatC public abstract fun MessageQuotedContent (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V public abstract fun MessageRegularContent (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V public abstract fun MessageTextContent (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListEmptyContent (Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItem (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemCenterContent (Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemDivider (Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemLeadingContent (Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemTrailingContent (Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListLoadingContent (Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListLoadingMoreContent (Landroidx/compose/runtime/Composer;I)V public abstract fun SearchInputLabel (Landroidx/compose/runtime/Composer;I)V public abstract fun SearchInputLeadingIcon (Landroidx/compose/foundation/layout/RowScope;Landroidx/compose/runtime/Composer;I)V } @@ -2187,6 +2195,14 @@ public final class io/getstream/chat/android/compose/ui/theme/ChatComponentFacto public static fun MessageQuotedContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V public static fun MessageRegularContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V public static fun MessageTextContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListEmptyContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItem (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemCenterContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemDivider (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemLeadingContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemTrailingContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListLoadingContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListLoadingMoreContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/runtime/Composer;I)V public static fun SearchInputLabel (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/runtime/Composer;I)V public static fun SearchInputLeadingIcon (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Landroidx/compose/runtime/Composer;I)V } diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageItem.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageItem.kt index 8072b411258..aa3119359e7 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageItem.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageItem.kt @@ -19,10 +19,8 @@ package io.getstream.chat.android.compose.ui.pinned import androidx.compose.foundation.layout.RowScope import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import io.getstream.chat.android.compose.ui.messages.preview.internal.DefaultMessagePreviewItemCenterContent -import io.getstream.chat.android.compose.ui.messages.preview.internal.DefaultMessagePreviewItemLeadingContent -import io.getstream.chat.android.compose.ui.messages.preview.internal.DefaultMessagePreviewItemTrailingContent import io.getstream.chat.android.compose.ui.messages.preview.internal.MessagePreviewItem +import io.getstream.chat.android.compose.ui.theme.ChatTheme import io.getstream.chat.android.models.Message import io.getstream.chat.android.models.User @@ -46,13 +44,19 @@ public fun PinnedMessageItem( onPinnedMessageClick: (Message) -> Unit, modifier: Modifier = Modifier, leadingContent: @Composable RowScope.(Message) -> Unit = { - DefaultMessagePreviewItemLeadingContent(it) + with(ChatTheme.componentFactory) { + PinnedMessageListItemLeadingContent(it) + } }, centerContent: @Composable RowScope.(Message) -> Unit = { - DefaultMessagePreviewItemCenterContent(it, currentUser) + with(ChatTheme.componentFactory) { + PinnedMessageListItemCenterContent(it, currentUser) + } }, trailingContent: @Composable RowScope.(Message) -> Unit = { - DefaultMessagePreviewItemTrailingContent(it) + with(ChatTheme.componentFactory) { + PinnedMessageListItemTrailingContent(it) + } }, ) { MessagePreviewItem( diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageList.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageList.kt index 7958a4a4469..466e0bf8917 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageList.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/pinned/PinnedMessageList.kt @@ -88,19 +88,19 @@ public fun PinnedMessageList( currentUser: User? = ChatClient.instance().getCurrentUser(), onPinnedMessageClick: (Message) -> Unit = {}, itemContent: @Composable (Message) -> Unit = { - DefaultPinnedMessageItem(it, currentUser, onPinnedMessageClick) + ChatTheme.componentFactory.PinnedMessageListItem(it, currentUser, onPinnedMessageClick) }, itemDivider: @Composable (Int) -> Unit = { - DefaultPinnedMessageItemDivider() + ChatTheme.componentFactory.PinnedMessageListItemDivider() }, emptyContent: @Composable () -> Unit = { - DefaultPinnedMessageListEmptyContent(modifier) + ChatTheme.componentFactory.PinnedMessageListEmptyContent(modifier) }, loadingContent: @Composable () -> Unit = { - DefaultPinnedMessageListLoadingContent(modifier) + ChatTheme.componentFactory.PinnedMessageListLoadingContent(modifier) }, loadingMoreContent: @Composable () -> Unit = { - DefaultPinnedMessageListLoadingMoreContent() + ChatTheme.componentFactory.PinnedMessageListLoadingMoreContent() }, ) { val state by viewModel.state.collectAsState() @@ -186,31 +186,11 @@ private fun PinnedMessages( } } -/** - * The default item rendering a pinned message. - * - * @param message The [Message] to render. - * @param currentUser The currently logged in [User]. - * @param onPinnedMessageClick The action invoked when the user clicks on the item. - */ -@Composable -internal fun DefaultPinnedMessageItem( - message: Message, - currentUser: User?, - onPinnedMessageClick: (Message) -> Unit, -) { - PinnedMessageItem( - message = message, - currentUser = currentUser, - onPinnedMessageClick = onPinnedMessageClick, - ) -} - /** * The default divider appended after each pinned message. */ @Composable -internal fun DefaultPinnedMessageItemDivider() { +internal fun DefaultPinnedMessageListItemDivider() { Spacer( modifier = Modifier .fillMaxWidth() @@ -297,7 +277,7 @@ private const val LoadMoreThreshold = 10 @Composable @Preview -private fun DefaultPinnedMessageContentPreview() { +private fun PinnedMessageItemPreview() { ChatTheme { Surface { val message = Message( @@ -309,7 +289,7 @@ private fun DefaultPinnedMessageContentPreview() { name = "Test User", ), ) - DefaultPinnedMessageItem( + PinnedMessageItem( message = message, currentUser = null, onPinnedMessageClick = {}, diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt index 6476aa72378..b077da60ce5 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactory.kt @@ -72,6 +72,14 @@ import io.getstream.chat.android.compose.ui.messages.list.DefaultMessagesHelperC import io.getstream.chat.android.compose.ui.messages.list.DefaultMessagesLoadingMoreIndicator import io.getstream.chat.android.compose.ui.messages.list.DefaultSystemMessageContent import io.getstream.chat.android.compose.ui.messages.list.MessagesLazyListState +import io.getstream.chat.android.compose.ui.messages.preview.internal.DefaultMessagePreviewItemCenterContent +import io.getstream.chat.android.compose.ui.messages.preview.internal.DefaultMessagePreviewItemLeadingContent +import io.getstream.chat.android.compose.ui.messages.preview.internal.DefaultMessagePreviewItemTrailingContent +import io.getstream.chat.android.compose.ui.pinned.DefaultPinnedMessageListEmptyContent +import io.getstream.chat.android.compose.ui.pinned.DefaultPinnedMessageListItemDivider +import io.getstream.chat.android.compose.ui.pinned.DefaultPinnedMessageListLoadingContent +import io.getstream.chat.android.compose.ui.pinned.DefaultPinnedMessageListLoadingMoreContent +import io.getstream.chat.android.compose.ui.pinned.PinnedMessageItem import io.getstream.chat.android.models.Channel import io.getstream.chat.android.models.ConnectionState import io.getstream.chat.android.models.Message @@ -877,4 +885,96 @@ public interface ChatComponentFactory { ) { MessageFooter(messageItem = messageItem) } + + /** + * The default content of the pinned message list item. + * + * @param message The pinned message to display. + * @param currentUser The current user. + * @param onClick Action invoked when the user clicks on the pinned message. + */ + @Composable + public fun PinnedMessageListItem( + message: Message, + currentUser: User?, + onClick: (Message) -> Unit, + ) { + PinnedMessageItem(message, currentUser, onClick) + } + + /** + * The default loading content of the pinned message list. Shows an avatar of the user who sent the pinned message. + * + * Used in the [PinnedMessageListItem]. + * + * @param message The pinned message to display. + */ + @Composable + public fun RowScope.PinnedMessageListItemLeadingContent(message: Message) { + DefaultMessagePreviewItemLeadingContent(message) + } + + /** + * The default loading content of the pinned message list. Shows the message sender name and the message content. + * + * Used in the [PinnedMessageListItem]. + * + * @param message The pinned message to display. + * @param currentUser The current user. + */ + @Composable + public fun RowScope.PinnedMessageListItemCenterContent( + message: Message, + currentUser: User?, + ) { + DefaultMessagePreviewItemCenterContent(message, currentUser) + } + + /** + * The default loading content of the pinned message list. Shows the message timestamp. + * + * Used in the [PinnedMessageListItem]. + * + * @param message The pinned message to display. + */ + @Composable + public fun RowScope.PinnedMessageListItemTrailingContent(message: Message) { + DefaultMessagePreviewItemTrailingContent(message) + } + + /** + * The default divider appended after each pinned message. + */ + @Composable + public fun PinnedMessageListItemDivider() { + DefaultPinnedMessageListItemDivider() + } + + /** + * The default empty placeholder that is displayed when there are no pinned messages. + * + * @param modifier Modifier for styling. + */ + @Composable + public fun PinnedMessageListEmptyContent(modifier: Modifier) { + DefaultPinnedMessageListEmptyContent(modifier) + } + + /** + * The default loading content that is displayed during the initial loading of the pinned messages. + * + * @param modifier Modifier for styling. + */ + @Composable + public fun PinnedMessageListLoadingContent(modifier: Modifier) { + DefaultPinnedMessageListLoadingContent(modifier) + } + + /** + * The default content shown on the bottom of the list during the loading of more pinned messages. + */ + @Composable + public fun PinnedMessageListLoadingMoreContent() { + DefaultPinnedMessageListLoadingMoreContent() + } } From 28d61d10d396506c0642b8a87bc2e00a5ce179d5 Mon Sep 17 00:00:00 2001 From: PetarVelikov Date: Fri, 31 Jan 2025 09:31:55 +0100 Subject: [PATCH 2/3] [AND-294] Update CHANGELOG.md. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b2ee449f2f..405044ec867 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -76,6 +76,7 @@ - Create snapshot tests for messages stateless components. [#5578](https://github.com/GetStream/stream-chat-android/pull/5578) - Create message stateless component factories and refactor to have a single component factory object. [#5593](https://github.com/GetStream/stream-chat-android/pull/5593) - Create message list header component factories. [#5599](https://github.com/GetStream/stream-chat-android/pull/5599) +- Create pinned message list component factories. [#5603](https://github.com/GetStream/stream-chat-android/pull/5603) ### ✅ Added From 1977ef424154c88a02dfd03344c30117aaeede8f Mon Sep 17 00:00:00 2001 From: PetarVelikov Date: Wed, 5 Feb 2025 12:56:48 +0100 Subject: [PATCH 3/3] [AND-294] Apply spotless. --- .../api/stream-chat-android-compose.api | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/stream-chat-android-compose/api/stream-chat-android-compose.api b/stream-chat-android-compose/api/stream-chat-android-compose.api index 93930fcb6a8..68f99101470 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -2195,6 +2195,14 @@ public abstract interface class io/getstream/chat/android/compose/ui/theme/ChatC public abstract fun MessageReactionPickerHeaderContent (Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/models/Message;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V public abstract fun MessageRegularContent (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V public abstract fun MessageTextContent (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListEmptyContent (Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItem (Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemCenterContent (Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemDivider (Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemLeadingContent (Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListItemTrailingContent (Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListLoadingContent (Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public abstract fun PinnedMessageListLoadingMoreContent (Landroidx/compose/runtime/Composer;I)V public abstract fun ReactionMenuOptionItem (Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/compose/state/reactionoptions/ReactionOptionItemState;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V public abstract fun ReactionMenuOptions (Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/models/Message;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;ILandroidx/compose/runtime/Composer;I)V public abstract fun ReactionMenuShowMore (Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;ILandroidx/compose/runtime/Composer;I)V @@ -2308,6 +2316,14 @@ public final class io/getstream/chat/android/compose/ui/theme/ChatComponentFacto public static fun MessageReactionPickerHeaderContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/models/Message;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V public static fun MessageRegularContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V public static fun MessageTextContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListEmptyContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItem (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemCenterContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Lio/getstream/chat/android/models/User;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemDivider (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemLeadingContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListItemTrailingContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/foundation/layout/RowScope;Lio/getstream/chat/android/models/Message;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListLoadingContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + public static fun PinnedMessageListLoadingMoreContent (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/runtime/Composer;I)V public static fun ReactionMenuOptionItem (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/compose/state/reactionoptions/ReactionOptionItemState;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V public static fun ReactionMenuOptions (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Lio/getstream/chat/android/models/Message;Ljava/util/Map;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;ILandroidx/compose/runtime/Composer;I)V public static fun ReactionMenuShowMore (Lio/getstream/chat/android/compose/ui/theme/ChatComponentFactory;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;ILandroidx/compose/runtime/Composer;I)V