mirror of
https://github.com/fankes/pagecurl-multiplatform.git
synced 2025-09-08 03:24:03 +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
|
content: @Composable (Int) -> Unit
|
||||||
) {
|
) {
|
||||||
val scope = rememberCoroutineScope()
|
val scope = rememberCoroutineScope()
|
||||||
val updatedCurrent by rememberUpdatedState(state.current)
|
|
||||||
|
|
||||||
BoxWithConstraints(modifier) {
|
BoxWithConstraints(modifier) {
|
||||||
state.max = count
|
state.setup(count, constraints)
|
||||||
state.setup(constraints)
|
|
||||||
|
|
||||||
|
val updatedCurrent by rememberUpdatedState(state.current)
|
||||||
val internalState by rememberUpdatedState(state.internalState ?: return@BoxWithConstraints)
|
val internalState by rememberUpdatedState(state.internalState ?: return@BoxWithConstraints)
|
||||||
|
|
||||||
val config by rememberUpdatedState(state.config)
|
val config by rememberUpdatedState(state.config)
|
||||||
|
@@ -117,10 +117,17 @@ public class PageCurlState(
|
|||||||
public val progress: Float get() = internalState?.progress ?: 0f
|
public val progress: Float get() = internalState?.progress ?: 0f
|
||||||
|
|
||||||
internal var max: Int = initialMax
|
internal var max: Int = initialMax
|
||||||
|
private set
|
||||||
|
|
||||||
internal var internalState: InternalState? by mutableStateOf(null)
|
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) {
|
if (internalState?.constraints == constraints) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user