searchScreen

This commit is contained in:
Your Name 2025-06-06 00:24:55 +03:00
parent e3c4a408b1
commit a86bcad324
4 changed files with 53 additions and 3 deletions

View File

@ -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)
}
}
}
}

View File

@ -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",

View File

@ -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)

View File

@ -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
)
}
}