From f8c77ea34dba023359703b2b7fa3cfacf1742834 Mon Sep 17 00:00:00 2001 From: Artem Chepurnoy Date: Wed, 19 Jun 2024 08:09:22 +0300 Subject: [PATCH] improvement(Vault): Clear search query on first back press --- .../vault/screen/VaultListStateProducer.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/common/src/commonMain/kotlin/com/artemchep/keyguard/feature/home/vault/screen/VaultListStateProducer.kt b/common/src/commonMain/kotlin/com/artemchep/keyguard/feature/home/vault/screen/VaultListStateProducer.kt index d32cd1ba..d13c9c09 100644 --- a/common/src/commonMain/kotlin/com/artemchep/keyguard/feature/home/vault/screen/VaultListStateProducer.kt +++ b/common/src/commonMain/kotlin/com/artemchep/keyguard/feature/home/vault/screen/VaultListStateProducer.kt @@ -330,6 +330,24 @@ fun vaultListScreenState( val querySink = mutablePersistedFlow("query") { "" } val queryState = mutableComposeState(querySink) + // Intercept the back button while the + // search query is not empty. + interceptBackPress( + interceptorFlow = querySink + .map { it.isNotEmpty() } + .distinctUntilChanged() + .map { enabled -> + if (enabled) { + // lambda + { + queryState.value = "" + } + } else { + null + } + }, + ) + val cipherSink = EventFlow() val itemSink = mutablePersistedFlow("lole") { "" }