Load next page is now done automatically

This commit is contained in:
Syer10
2021-05-29 20:59:34 -04:00
parent f1d0e3b3cf
commit a80e6b09e3
2 changed files with 6 additions and 12 deletions

View File

@@ -43,8 +43,6 @@ fun openSourcesMenu() {
} }
} }
private const val SOURCE_MENU_KEY = "source_menu"
@Composable @Composable
fun SourcesMenu(onMangaClick: (Long) -> Unit) { fun SourcesMenu(onMangaClick: (Long) -> Unit) {
SourcesMenu(LocalSavedInstanceState.current, onMangaClick) SourcesMenu(LocalSavedInstanceState.current, onMangaClick)

View File

@@ -11,10 +11,11 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.lazy.GridCells import androidx.compose.foundation.lazy.GridCells
import androidx.compose.foundation.lazy.LazyVerticalGrid import androidx.compose.foundation.lazy.LazyVerticalGrid
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.material.Button import androidx.compose.material.Button
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
@@ -77,15 +78,7 @@ private fun MangaTable(
LoadingScreen(isLoading) LoadingScreen(isLoading)
} else { } else {
Column { Column {
// TODO: this should happen automatically on scroll
Box(modifier = Modifier.fillMaxWidth()) { Box(modifier = Modifier.fillMaxWidth()) {
Button(
onClick = onLoadNextPage,
enabled = hasNextPage && !isLoading,
modifier = Modifier.align(Alignment.TopStart)
) {
Text(text = if (isLoading) "Loading..." else "Load next page")
}
if (supportsLatest) { if (supportsLatest) {
Button( Button(
onClick = { onClickMode(!isLatest) }, onClick = { onClickMode(!isLatest) },
@@ -99,7 +92,10 @@ private fun MangaTable(
val persistentState = persistentLazyListState(bundle) val persistentState = persistentLazyListState(bundle)
LazyVerticalGrid(GridCells.Adaptive(160.dp), state = persistentState) { LazyVerticalGrid(GridCells.Adaptive(160.dp), state = persistentState) {
items(mangas) { manga -> itemsIndexed(mangas) { index, manga ->
if (hasNextPage && index == mangas.lastIndex) {
SideEffect(onLoadNextPage)
}
MangaGridItem( MangaGridItem(
title = manga.title, title = manga.title,
cover = manga.cover(serverUrl), cover = manga.cover(serverUrl),