Update current page when decreasing pages count

This commit is contained in:
Oleksandr Balan
2023-03-22 09:04:17 +01:00
parent 6ccf7076ab
commit 43da069d1a
2 changed files with 10 additions and 4 deletions

View File

@@ -26,12 +26,11 @@ public fun PageCurl(
content: @Composable (Int) -> Unit
) {
val scope = rememberCoroutineScope()
val updatedCurrent by rememberUpdatedState(state.current)
BoxWithConstraints(modifier) {
state.max = count
state.setup(constraints)
state.setup(count, constraints)
val updatedCurrent by rememberUpdatedState(state.current)
val internalState by rememberUpdatedState(state.internalState ?: return@BoxWithConstraints)
val config by rememberUpdatedState(state.config)

View File

@@ -117,10 +117,17 @@ public class PageCurlState(
public val progress: Float get() = internalState?.progress ?: 0f
internal var max: Int = initialMax
private set
internal var internalState: InternalState? by mutableStateOf(null)
private set
internal fun setup(count: Int, constraints: Constraints) {
max = count
if (current >= count) {
current = count - 1
}
internal fun setup(constraints: Constraints) {
if (internalState?.constraints == constraints) {
return
}