diff --git a/app/src/main/java/com/example/testktor/MainActivity.kt b/app/src/main/java/com/example/testktor/MainActivity.kt index 41d311f..2db43ca 100644 --- a/app/src/main/java/com/example/testktor/MainActivity.kt +++ b/app/src/main/java/com/example/testktor/MainActivity.kt @@ -22,6 +22,7 @@ import com.example.testktor.screen.main.FavouriteSneakersScreen import com.example.testktor.screen.main.KorzinaSneakersContent import com.example.testktor.screen.main.KorzinaSneakersScreen import com.example.testktor.screen.main.PopularSneakersScreen +import com.example.testktor.screen.main.SearchScreen import com.example.testktor.screen.main.SuccessOrderSneakersScreen //import com.example.testktor.auth.AuthScreen //import com.example.testktor.auth.RegistrationScreen @@ -79,6 +80,10 @@ class MainActivity : ComponentActivity() { composable("successOrderSneakers_screen") { SuccessOrderSneakersScreen(navController, viewModel) } + composable("search_screen/{query}") { backStackEntry -> + val query = backStackEntry.arguments?.getString("query") ?: "" + SearchScreen(query = query, viewModel = viewModel, navController = navController) + } } } } diff --git a/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt b/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt index d4c040c..5925628 100644 --- a/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt +++ b/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt @@ -96,7 +96,11 @@ fun TopNavigationBar(){ @OptIn(ExperimentalMaterial3Api::class) @Composable -fun Searchbar(searchBox: String, onSearchChange: (String) -> Unit){ +fun Searchbar( + searchBox: String, + onSearchChange: (String) -> Unit, + onSearchClick: () -> Unit +){ Row( modifier = Modifier .fillMaxWidth() @@ -133,7 +137,7 @@ fun Searchbar(searchBox: String, onSearchChange: (String) -> Unit){ } ) - IconButton(onClick = { /* TODO: действие кнопки */ }) { + IconButton(onClick = onSearchClick) { Image( painter = painterResource(id = R.drawable.group12), contentDescription = "settings", diff --git a/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt b/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt index 5284548..c25126d 100644 --- a/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt +++ b/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt @@ -63,7 +63,13 @@ fun SneakersContent( .padding(16.dp), ) { TopNavigationBar() - Searchbar(searchBoxIn, { searchBoxIn = it }) + Searchbar( + searchBox = searchBoxIn, + onSearchChange = { searchBoxIn = it }, + onSearchClick = { + navController.navigate("search_screen/${searchBoxIn}") + } + ) Column { Text(text = "Категории", fontSize = 16.sp) diff --git a/app/src/main/java/com/example/testktor/screen/main/SearchScneakersScreen.kt b/app/src/main/java/com/example/testktor/screen/main/SearchScneakersScreen.kt new file mode 100644 index 0000000..469e927 --- /dev/null +++ b/app/src/main/java/com/example/testktor/screen/main/SearchScneakersScreen.kt @@ -0,0 +1,35 @@ +package com.example.testktor.screen.main + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import com.example.testktor.SneakerShop +import com.example.testktor.ViewModel.MainViewModel +import com.example.testktor.method.main.SneakerSelection +import com.example.testktor.method.main.TopNavigationBar +import com.example.testktor.method.main.TopWriteNavigationBar + +@Composable +fun SearchScreen( + query: String, + viewModel: MainViewModel, + navController: NavController +) { + val sneakers = viewModel.sneakersCategories.sneakers + val filtered = sneakers.filter { + it.name.contains(query, ignoreCase = true) + } + + Column(modifier = Modifier.padding(16.dp)) { + TopWriteNavigationBar(navController, "Поиск", viewModel) + SneakerSelection( + sneakers = filtered.map { SneakerShop(it, false, false) }, + viewModel = viewModel + ) + } +} \ No newline at end of file