diff --git a/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt b/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt index 248ca7d6f..49a58f147 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.key import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope @@ -53,8 +54,10 @@ fun LibraryContent( end = contentPadding.calculateEndPadding(LocalLayoutDirection.current), ), ) { - val coercedCurrentPage = remember { currentPage().coerceIn(0, categories.lastIndex) } - val pagerState = rememberPagerState(coercedCurrentPage) + // SY --> + val coercedCurrentPage = remember(categories) { currentPage().coerceIn(0, categories.lastIndex) } + val pagerState = key(categories) { rememberPagerState(coercedCurrentPage) } + // SY <-- val scope = rememberCoroutineScope() var isRefreshing by remember(pagerState.currentPage) { mutableStateOf(false) } diff --git a/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt b/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt index c5ed121c1..706e236ff 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt @@ -19,11 +19,15 @@ fun LibraryTabs( getNumberOfMangaForCategory: (Category) -> Int?, onTabItemClick: (Int) -> Unit, ) { + // SY --> + @Suppress("NAME_SHADOWING") + val currentPageIndex = currentPageIndex.coerceAtMost(categories.lastIndex) + // SY <-- Column { ScrollableTabRow( selectedTabIndex = currentPageIndex, edgePadding = 0.dp, - indicator = { TabIndicator(it[currentPageIndex]) }, + indicator = { TabIndicator(it[currentPageIndex.coerceAtMost(categories.lastIndex)]) }, // TODO: use default when width is fixed upstream // https://issuetracker.google.com/issues/242879624 divider = {},