Clean focus / hide keyboard on detail

This commit is contained in:
Thomas Andres Gomez 2023-03-29 16:43:57 +02:00
parent d7cb0221a4
commit 5aaa3e325d

View file

@ -20,12 +20,15 @@ import androidx.compose.material.icons.filled.Person
import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.filled.Search
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
@ -70,7 +73,7 @@ sealed class HomeScreenErrorUio(
) )
} }
@OptIn(ExperimentalMaterialApi::class) @OptIn(ExperimentalMaterialApi::class, ExperimentalComposeUiApi::class)
@Composable @Composable
fun HomeScreen( fun HomeScreen(
bookViewModel: BookSearchViewModel = hiltViewModel(), bookViewModel: BookSearchViewModel = hiltViewModel(),
@ -80,6 +83,8 @@ fun HomeScreen(
val context = LocalContext.current val context = LocalContext.current
val navigation = LocalScreenNavHostController.current val navigation = LocalScreenNavHostController.current
val snackBarHost = LocalSnackHostState.current val snackBarHost = LocalSnackHostState.current
val focus = LocalFocusManager.current
val keyboard = LocalSoftwareKeyboardController.current
val detailState: DetailBottomSheetState = rememberDetailBottomSheetState() val detailState: DetailBottomSheetState = rememberDetailBottomSheetState()
val filterState: FilterBottomSheetState = rememberFilterBottomSheetState() val filterState: FilterBottomSheetState = rememberFilterBottomSheetState()
val sortingState: SortBottomSheetState = rememberSortBottomSheetState() val sortingState: SortBottomSheetState = rememberSortBottomSheetState()
@ -144,6 +149,8 @@ fun HomeScreen(
microListState = microListState, microListState = microListState,
microList = bookViewModel.microPaging, microList = bookViewModel.microPaging,
onBook = { onBook = {
focus.clearFocus(force = true)
keyboard?.hide()
scope.launch { scope.launch {
detailState.expandBookDetail(id = it) detailState.expandBookDetail(id = it)
} }