conversationEntriesPaged

abstract fun conversationEntriesPaged(pageSize: Int = DEFAULT_PAGE_SIZE): Flow<Result<PagingData<ConversationEntry>>>

Returns a paginated stream of ConversationEntry objects for this conversation.

Uses Jetpack Paging 3 for efficient loading of large conversation histories. Entries are loaded incrementally as the user scrolls.

Return

A Flow of Result containing PagingData of conversation entries.

Parameters

pageSize

The number of entries per page. Defaults to DEFAULT_PAGE_SIZE.

Samples

val lazyPagingItems = remember {
    conversationClient.conversationEntriesPaged()
        .filterIsInstance<Result.Success<PagingData<ConversationEntry>>>()
        .map { it.data }
}.collectAsLazyPagingItems()

LazyColumn {
    if (lazyPagingItems.loadState.refresh == LoadState.Loading) {
        item {
            Text(
                text = "Loading messages...",
                modifier = Modifier.fillMaxWidth()
                    .wrapContentWidth(Alignment.CenterHorizontally)
            )
        }
    }

    items(count = lazyPagingItems.itemCount) { index ->
        val entry = lazyPagingItems[index]
        Text("Entry: $entry", fontSize = 16.sp)
    }

    if (lazyPagingItems.loadState.append == LoadState.Loading) {
        item {
            CircularProgressIndicator(
                modifier = Modifier.fillMaxWidth()
                    .wrapContentWidth(Alignment.CenterHorizontally)
            )
        }
    }
}