Fix thread list not loading older threads (#7034)

* Fix thread list pagination
This commit is contained in:
bxdxnn
2026-06-16 21:52:52 +03:00
committed by GitHub
parent 8bf30a5eab
commit 351acec58d
2 changed files with 7 additions and 6 deletions
@@ -101,9 +101,10 @@ class ThreadsListPresenter(
coroutineScope.launch {
Timber.d("Paginating thread list: $paginationStatus")
threadsListService.paginate()
.onFailure { Timber.w(it, "Failed to paginate thread list") }
}
} else {
Timber.d("Not paginating since there is nothing else to load, current status: $paginationStatus")
Timber.d("Not paginating, current status: $paginationStatus")
}
}
}
@@ -162,14 +162,14 @@ private fun ScrollHelper(
val lastVisibleItemIndex by remember {
derivedStateOf { listState.firstVisibleItemIndex + listState.layoutInfo.visibleItemsInfo.size - 1 }
}
val needsPagination by remember {
val shouldPaginate by remember {
derivedStateOf {
val canLoadNewItems = listState.isScrollInProgress || listState.firstVisibleItemScrollOffset == 0
canLoadNewItems && lastVisibleItemIndex == listState.layoutInfo.totalItemsCount - 1
val canLoadNewItems = listState.isScrollInProgress || listState.layoutInfo.totalItemsCount == 0
canLoadNewItems && lastVisibleItemIndex >= listState.layoutInfo.totalItemsCount - 1
}
}
LaunchedEffect(needsPagination, lastVisibleItemIndex) {
if (needsPagination) {
LaunchedEffect(shouldPaginate, lastVisibleItemIndex) {
if (shouldPaginate) {
updatedOnPaginate()
delay(400L)
}