mirror of
https://github.com/fankes/pagecurl-multiplatform.git
synced 2025-09-05 10:15:30 +08:00
Update current page when decreasing pages count
This commit is contained in:
@@ -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)
|
||||
|
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user