From be55f3cf9027ee931f596f653997d97a4eaff584 Mon Sep 17 00:00:00 2001 From: Dude so hot Date: Thu, 16 Jan 2025 20:04:21 +0800 Subject: [PATCH] asyncState takes `produce` --- app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt | 2 +- .../kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt | 2 +- .../kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt | 2 +- .../com/hippo/ehviewer/ui/screen/GalleryListScreen.kt | 2 +- .../kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt index bb5505761..7e812ecb9 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt @@ -130,7 +130,7 @@ fun FabLayout( val builder by rememberUpdatedState(fabBuilder) val secondaryFab by asyncState( - record = { buildFab(builder) }, + produce = { buildFab(builder) }, transform = { onEachLatest { state.collapse(MutatePriority.PreventUserInput) } }, ) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index 58daf2829..bf1295cc2 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -634,7 +634,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = } val hideFab by asyncState( - record = { fabHidden }, + produce = { fabHidden }, transform = { onEachLatest { hide -> if (!hide) delay(FAB_ANIMATE_TIME.toLong()) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt index d89faf087..63e547629 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt @@ -332,7 +332,7 @@ fun AnimatedVisibilityScope.FavouritesScreen(navigator: DestinationsNavigator) = } val hideFab by asyncState( - record = { fabHidden }, + produce = { fabHidden }, transform = { onEachLatest { hide: Boolean -> if (!hide) delay(FAB_ANIMATE_TIME.toLong()) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index 8fc22723f..f230d9149 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -596,7 +596,7 @@ fun AnimatedVisibilityScope.GalleryListScreen(lub: ListUrlBuilder, navigator: De val outOfRange = stringResource(R.string.error_out_of_range) val hideFab by asyncState( - record = { fabHidden }, + produce = { fabHidden }, transform = { onEachLatest { hide: Boolean -> if (!hide) delay(FAB_ANIMATE_TIME.toLong()) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt index 24a5092cf..d9083c39f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt @@ -9,10 +9,10 @@ import kotlinx.coroutines.flow.Flow @Composable fun asyncState( - record: () -> T, + produce: () -> T, transform: Flow.() -> Flow = { this }, -) = remember(transform, record) { - Snapshot.withoutReadObservation(record) to transform(snapshotFlow(record)) +) = remember(transform, produce) { + Snapshot.withoutReadObservation(produce) to transform(snapshotFlow(produce)) }.let { (initial, flow) -> flow.collectAsState(initial) }