diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt index b23d0d67e..21bf5bcbc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/RememberGlobally.kt @@ -42,12 +42,12 @@ class StateMapViewModel : ViewModel() { @Composable inline fun rememberInVM( - vararg inputs: Any?, + userKey: Any? = null, crossinline init: @DisallowComposableCalls ViewModel.() -> T, ) = with(viewModel()) { val key = currentCompositeKeyHash - remember(*inputs) { - val states = statesMap.getOrPut(key) { ArrayDeque() } + remember(userKey) { + val states = statesMap.getOrPut(key, ::ArrayDeque) states.removeLastOrNull() as T? ?: init() }.also { value -> val valueState by rememberUpdatedState(value)