From 60e74b8d8f14bd2761799f4fb0ae4d124becbea2 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Sat, 12 Sep 2026 22:34:39 +0600 Subject: [PATCH] Don't try to create slider state when slider can't or won't be rendered (#3941) --- .../reader/components/ChapterNavigator.kt | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/reader/components/ChapterNavigator.kt b/app/src/main/java/eu/kanade/presentation/reader/components/ChapterNavigator.kt index 8ba0d4a2d..d3047117a 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/components/ChapterNavigator.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/components/ChapterNavigator.kt @@ -77,14 +77,20 @@ fun ChapterNavigator( ) { val haptic = LocalHapticFeedback.current - val state = key(totalPages) { - rememberSliderState( - value = currentPage.toFloat(), - steps = totalPages - 2, - trackRange = 1f..totalPages.toFloat(), - ) + val state = if (totalPages > 1) { + key(totalPages) { + rememberSliderState( + value = currentPage.toFloat(), + steps = totalPages - 2, + trackRange = 1f..totalPages.toFloat(), + ) + } + .also { + it.value = currentPage.toFloat() + } + } else { + null } - state.value = currentPage.toFloat() val interactionSource = remember { MutableInteractionSource() } val sliderDragged by interactionSource.collectIsDraggedAsState() @@ -149,7 +155,7 @@ fun ChapterNavigator( @Composable fun HorizontalChapterNavigator( isRtl: Boolean, - state: SliderState, + state: SliderState?, onNextChapter: () -> Unit, enabledNext: Boolean, onPreviousChapter: () -> Unit, @@ -187,7 +193,7 @@ fun HorizontalChapterNavigator( ) } - if (totalPages > 1) { + if (state != null) { CompositionLocalProvider(LocalLayoutDirection provides layoutDirection) { Row( modifier = Modifier @@ -238,7 +244,7 @@ fun HorizontalChapterNavigator( @Composable fun VerticalChapterNavigator( - state: SliderState, + state: SliderState?, onNextChapter: () -> Unit, enabledNext: Boolean, onPreviousChapter: () -> Unit, @@ -271,7 +277,7 @@ fun VerticalChapterNavigator( ) } - if (totalPages > 1) { + if (state != null) { Column( modifier = Modifier .weight(1f)