diff --git a/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/ChatViewModel.kt b/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/ChatViewModel.kt index 9209f7e..a2eea14 100644 --- a/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/ChatViewModel.kt +++ b/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/ChatViewModel.kt @@ -345,6 +345,8 @@ class ChatViewModel @Inject constructor( (older + current).distinctBy { it.id }.sortedBy { it.createdAt } } } + }.onFailure { e -> + _error.value = "Failed to load older messages: ${e.message}" } _isLoadingMore.value = false } diff --git a/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/screens/ChatMessageList.kt b/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/screens/ChatMessageList.kt index adbc143..31fec78 100644 --- a/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/screens/ChatMessageList.kt +++ b/app/src/main/kotlin/com/synapse/social/studioasinc/feature/inbox/inbox/screens/ChatMessageList.kt @@ -68,7 +68,7 @@ internal fun ChatMessageList( } } LaunchedEffect(shouldLoadMore.value) { - if (shouldLoadMore.value) onLoadMore() + if (shouldLoadMore.value && !isLoadingMore) onLoadMore() } LazyColumn( @@ -84,13 +84,6 @@ internal fun ChatMessageList( ), reverseLayout = true ) { - if (isLoadingMore) { - item(key = "loading_more") { - Box(modifier = Modifier.fillMaxWidth().padding(Spacing.Small), contentAlignment = Alignment.Center) { - CircularProgressIndicator() - } - } - } val reversedItems = chatItems.reversed() itemsIndexed(reversedItems, key = { index, item -> when (item) { @@ -163,5 +156,13 @@ internal fun ChatMessageList( ) } } + + if (isLoadingMore) { + item(key = "loading_more") { + Box(modifier = Modifier.fillMaxWidth().padding(Spacing.Small), contentAlignment = Alignment.Center) { + CircularProgressIndicator() + } + } + } } }