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 4c4e996a5d5..02e067d8f2c 100644 --- a/stream-chat-android-compose/api/stream-chat-android-compose.api +++ b/stream-chat-android-compose/api/stream-chat-android-compose.api @@ -2664,7 +2664,7 @@ public final class io/getstream/chat/android/compose/ui/messages/list/MessageLis } public final class io/getstream/chat/android/compose/ui/messages/list/MessagesKt { - public static final fun Messages (Lio/getstream/chat/android/ui/common/state/messages/list/MessageListState;Lio/getstream/chat/android/compose/ui/messages/list/MessagesLazyListState;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Vertical;Lio/getstream/chat/android/compose/ui/messages/list/ThreadMessagesStart;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;III)V + public static final fun Messages (Lio/getstream/chat/android/ui/common/state/messages/list/MessageListState;Lio/getstream/chat/android/compose/ui/messages/list/MessagesLazyListState;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Vertical;Lio/getstream/chat/android/compose/ui/messages/list/ThreadMessagesStart;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;III)V } public final class io/getstream/chat/android/compose/ui/messages/list/MessagesLazyListState { diff --git a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/Messages.kt b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/Messages.kt index 8e5d9b9119e..257aed448df 100644 --- a/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/Messages.kt +++ b/stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/Messages.kt @@ -95,6 +95,8 @@ import kotlin.math.abs * @param loadingMoreContent Composable that represents the loading more content, when we're loading the next page. * @param itemModifier Modifier for styling the message item container. * @param itemContent Composable that represents the item that displays each message. + * @param headerContent The content shown at the top of the list of message items. + * @param footerContent The content shown at the bottom of the list of message items. */ @Composable @Suppress("LongParameterList", "LongMethod", "ComplexMethod") @@ -131,6 +133,8 @@ public fun Messages( } }, itemContent: @Composable LazyItemScope.(MessageListItemState) -> Unit, + headerContent: (@Composable () -> Unit)? = null, + footerContent: (@Composable () -> Unit)? = null, ) { val lazyListState = messagesLazyListState.lazyListState val messages = messagesState.messageItems @@ -170,6 +174,12 @@ public fun Messages( reverseLayout = true, contentPadding = contentPadding, ) { + footerContent?.let { content -> + item { + content.invoke() + } + } + if (isLoadingMoreNewMessages && !endOfNewMessages) { item { loadingMoreContent() @@ -201,6 +211,12 @@ public fun Messages( loadingMoreContent() } } + + headerContent?.let { content -> + item { + content.invoke() + } + } } helperContent()