searchScreen
This commit is contained in:
parent
e3c4a408b1
commit
a86bcad324
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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",
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user