@@ -32,11 +32,14 @@ import androidx.compose.runtime.collectAsState
3232import androidx.compose.runtime.getValue
3333import androidx.compose.runtime.mutableStateOf
3434import androidx.compose.runtime.remember
35+ import androidx.compose.runtime.rememberCoroutineScope
3536import androidx.compose.runtime.setValue
3637import androidx.compose.ui.Alignment
38+ import androidx.compose.ui.ExperimentalComposeUiApi
3739import androidx.compose.ui.Modifier
3840import androidx.compose.ui.draw.alpha
3941import androidx.compose.ui.draw.clip
42+ import androidx.compose.ui.platform.LocalSoftwareKeyboardController
4043import androidx.compose.ui.res.painterResource
4144import androidx.compose.ui.res.stringResource
4245import androidx.compose.ui.text.input.TextFieldValue
@@ -56,22 +59,25 @@ import com.getcode.util.rememberedClickable
5659import com.getcode.view.components.CodeCircularProgressIndicator
5760import com.getcode.view.components.SwipeableView
5861import com.getcode.view.main.giveKin.CurrencyListItem
62+ import kotlinx.coroutines.delay
5963import kotlinx.coroutines.flow.distinctUntilChanged
6064import kotlinx.coroutines.flow.filter
6165import kotlinx.coroutines.flow.filterIsInstance
6266import kotlinx.coroutines.flow.launchIn
6367import kotlinx.coroutines.flow.map
6468import kotlinx.coroutines.flow.onEach
69+ import kotlinx.coroutines.launch
6570import timber.log.Timber
6671
67- @OptIn(ExperimentalMaterialApi ::class )
72+ @OptIn(ExperimentalMaterialApi ::class , ExperimentalComposeUiApi :: class )
6873@Composable
6974fun CurrencySelectionSheet (
7075 viewModel : CurrencyViewModel ,
7176) {
7277 val navigator = LocalCodeNavigator .current
7378 val state by viewModel.stateFlow.collectAsState()
74-
79+ val keyboardController = LocalSoftwareKeyboardController .current
80+ val composeScope = rememberCoroutineScope()
7581 var searchQuery by remember {
7682 mutableStateOf(TextFieldValue ())
7783 }
@@ -89,7 +95,11 @@ fun CurrencySelectionSheet(
8995 .map { it.currency }
9096 .distinctUntilChanged()
9197 .onEach {
92- navigator.hideWithResult(it)
98+ composeScope.launch {
99+ keyboardController?.hide()
100+ delay(500 )
101+ navigator.hideWithResult(it)
102+ }
93103 }.launchIn(this )
94104 }
95105
0 commit comments