|
@@ -1,5 +1,6 @@
|
|
|
package com.example.exvesta.Screans
|
|
|
|
|
|
+import android.util.Log
|
|
|
import androidx.compose.foundation.BorderStroke
|
|
|
import androidx.compose.foundation.Image
|
|
|
import androidx.compose.foundation.background
|
|
@@ -8,167 +9,491 @@ import androidx.compose.foundation.layout.Box
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
import androidx.compose.foundation.layout.Row
|
|
|
import androidx.compose.foundation.layout.Spacer
|
|
|
+import androidx.compose.foundation.layout.fillMaxHeight
|
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
import androidx.compose.foundation.layout.height
|
|
|
import androidx.compose.foundation.layout.offset
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
+import androidx.compose.foundation.layout.size
|
|
|
import androidx.compose.foundation.layout.width
|
|
|
+import androidx.compose.foundation.layout.wrapContentSize
|
|
|
+import androidx.compose.foundation.lazy.LazyColumn
|
|
|
import androidx.compose.foundation.shape.CircleShape
|
|
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
import androidx.compose.material3.Button
|
|
|
import androidx.compose.material3.ButtonDefaults
|
|
|
-import androidx.compose.material3.Card
|
|
|
+import androidx.compose.material3.CircularProgressIndicator
|
|
|
import androidx.compose.material3.Text
|
|
|
+import androidx.compose.foundation.lazy.items
|
|
|
+import androidx.compose.material.DrawerValue
|
|
|
+import androidx.compose.material.ModalDrawer
|
|
|
+import androidx.compose.material.rememberDrawerState
|
|
|
+import androidx.compose.material3.Divider
|
|
|
import androidx.compose.runtime.Composable
|
|
|
import androidx.compose.runtime.LaunchedEffect
|
|
|
import androidx.compose.runtime.getValue
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
|
import androidx.compose.runtime.remember
|
|
|
+import androidx.compose.runtime.rememberCoroutineScope
|
|
|
+import androidx.compose.runtime.setValue
|
|
|
import androidx.compose.ui.Alignment
|
|
|
import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.draw.clip
|
|
|
import androidx.compose.ui.draw.shadow
|
|
|
import androidx.compose.ui.graphics.Color
|
|
|
+import androidx.compose.ui.layout.ContentScale
|
|
|
+import androidx.compose.ui.platform.LocalContext
|
|
|
+import androidx.compose.ui.text.font.FontWeight
|
|
|
|
|
|
-import androidx.compose.ui.res.painterResource
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
+import androidx.compose.ui.unit.sp
|
|
|
import androidx.navigation.NavHostController
|
|
|
+import coil.compose.AsyncImagePainter
|
|
|
+import coil.compose.rememberAsyncImagePainter
|
|
|
+import coil.request.ImageRequest
|
|
|
+import coil.size.Size
|
|
|
|
|
|
-import com.example.exvesta.R
|
|
|
import com.example.exvesta.domain.utils.Constants
|
|
|
import com.example.exvesta.model.Publicthings
|
|
|
+import com.example.exvesta.model.Season_dublicate
|
|
|
+import com.example.exvesta.model.Style_dublicate
|
|
|
import com.example.exvesta.model.Type_dublicate
|
|
|
+import com.example.exvesta.model.Type_subtype_dublicate
|
|
|
import io.github.jan.supabase.postgrest.from
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
import kotlinx.coroutines.withContext
|
|
|
+import androidx.compose.material.icons.Icons
|
|
|
+import androidx.compose.material.icons.filled.Menu
|
|
|
+import androidx.compose.material.*
|
|
|
+import androidx.compose.ui.graphics.Brush
|
|
|
+import androidx.navigation.NavHost
|
|
|
+import kotlinx.coroutines.launch
|
|
|
|
|
|
+
|
|
|
+@OptIn(ExperimentalMaterialApi::class)
|
|
|
@Composable
|
|
|
fun Home(navHost: NavHostController) {
|
|
|
-var dubtype by remember { mutableStateOf<List<Type_dublicate>>(listOf()) }
|
|
|
+ var subdubtype by remember { mutableStateOf<List<Type_subtype_dublicate>>(listOf()) }
|
|
|
+ var dubtype by remember { mutableStateOf<List<Type_dublicate>>(listOf()) }
|
|
|
+ var seasondub by remember { mutableStateOf<List<Season_dublicate>>(listOf()) }
|
|
|
+ var publicthings by remember { mutableStateOf<List<Publicthings>>(listOf()) }
|
|
|
+ var styledub by remember { mutableStateOf<List<Style_dublicate>>(listOf()) }
|
|
|
+
|
|
|
|
|
|
- var thingsdub by remember {mutableStateOf<List<Publicthings>>(listOf())}
|
|
|
- LaunchedEffect(Unit){
|
|
|
+ LaunchedEffect(Unit) {
|
|
|
withContext(Dispatchers.IO) {
|
|
|
- thingsdub = Constants.supabase.from("Publicthings")
|
|
|
+ publicthings = Constants.supabase.from("Publicthings")
|
|
|
.select().decodeList<Publicthings>()
|
|
|
+ subdubtype = Constants.supabase.from("Type_subtype_dublicate")
|
|
|
+ .select().decodeList<Type_subtype_dublicate>()
|
|
|
+ dubtype = Constants.supabase.from("Type_dublicate")
|
|
|
+ .select().decodeList<Type_dublicate>()
|
|
|
+ seasondub = Constants.supabase.from("Season_dublicate")
|
|
|
+ .select().decodeList<Season_dublicate>()
|
|
|
+ styledub = Constants.supabase.from("Style_dublicate")
|
|
|
+ .select().decodeList<Style_dublicate>()
|
|
|
+ publicthings.forEach { it ->
|
|
|
+ Log.d("ts", it.title)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- Column(
|
|
|
- modifier = Modifier
|
|
|
- .fillMaxSize()
|
|
|
- .background(Color.White)
|
|
|
- .padding(16.dp),
|
|
|
- horizontalAlignment = Alignment.CenterHorizontally
|
|
|
- ) {
|
|
|
- Spacer(modifier = Modifier.height(40.dp))
|
|
|
|
|
|
- Button(
|
|
|
- onClick = { /*TODO*/ },
|
|
|
- border = BorderStroke(1.dp, Color(0xFF92A2B0)),
|
|
|
- modifier = Modifier
|
|
|
- .fillMaxWidth()
|
|
|
- .padding(vertical = 8.dp),
|
|
|
- colors = ButtonDefaults.buttonColors(Color.White)
|
|
|
- ) {
|
|
|
- Text(text = "+ добавить фильтр", color = Color(0xFF92A2B0))
|
|
|
- }
|
|
|
|
|
|
- Spacer(modifier = Modifier.height(16.dp))
|
|
|
+ var isFilterSheetVisible by remember { mutableStateOf(false) }
|
|
|
+ var drawerState = rememberDrawerState(DrawerValue.Closed)
|
|
|
+ val scope = rememberCoroutineScope()
|
|
|
+
|
|
|
+ ModalDrawer(
|
|
|
+ drawerState = drawerState,
|
|
|
+ drawerContent = {
|
|
|
+ DrawerContent(navHost)
|
|
|
+
|
|
|
+ },
|
|
|
+ ) {
|
|
|
+ Column(
|
|
|
+ modifier = Modifier
|
|
|
|
|
|
- Row(
|
|
|
- modifier = Modifier.fillMaxWidth(),
|
|
|
- horizontalArrangement = Arrangement.SpaceAround
|
|
|
+ .fillMaxSize()
|
|
|
+ .background(Color.White)
|
|
|
+ .padding(16.dp),
|
|
|
+ horizontalAlignment = Alignment.CenterHorizontally
|
|
|
) {
|
|
|
- // Кнопка "вещи"
|
|
|
- Box(
|
|
|
+ Spacer(modifier = Modifier.height(20.dp))
|
|
|
+ Row(
|
|
|
modifier = Modifier
|
|
|
- .weight(1f)
|
|
|
- .padding(bottom = 4.dp) // Паддинг для отступа от нижней тени
|
|
|
- .clip(RoundedCornerShape(16.dp))
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(vertical = 16.dp)
|
|
|
+ ,
|
|
|
+ verticalAlignment = Alignment.CenterVertically,
|
|
|
+ horizontalArrangement = Arrangement.Start
|
|
|
) {
|
|
|
- // Тень
|
|
|
+ IconButton(onClick = {
|
|
|
+ scope.launch { drawerState.open() }
|
|
|
+ }) {
|
|
|
+ Icon(imageVector = Icons.Filled.Menu, contentDescription = "Menu")
|
|
|
+ }
|
|
|
+
|
|
|
+ Button(
|
|
|
+ onClick = {
|
|
|
+ isFilterSheetVisible = true
|
|
|
+ },
|
|
|
+ border = BorderStroke(1.dp, Color(0xFF92A2B0)),
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(vertical = 8.dp),
|
|
|
+ colors = ButtonDefaults.buttonColors(Color.White)
|
|
|
+ ) {
|
|
|
+ Text(text = "+ добавить фильтр", color = Color(0xFF92A2B0))
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Row(
|
|
|
+ modifier = Modifier.fillMaxWidth(),
|
|
|
+ horizontalArrangement = Arrangement.SpaceAround
|
|
|
+ ) {
|
|
|
+ // Кнопка "вещи"
|
|
|
Box(
|
|
|
modifier = Modifier
|
|
|
- .align(Alignment.BottomCenter)
|
|
|
- .fillMaxWidth()
|
|
|
- .height(4.dp) // Высота тени
|
|
|
- .background(Color.Black.copy(alpha = 0.2f)) // Цвет и прозрачность тени
|
|
|
- .offset(y = 2.dp), // Смещение тени вниз
|
|
|
+ .weight(1f)
|
|
|
+ .padding(bottom = 4.dp) // Паддинг для отступа от нижней тени
|
|
|
+ .clip(RoundedCornerShape(16.dp))
|
|
|
+ ) {
|
|
|
+ // Тень
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .align(Alignment.BottomCenter)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(4.dp) // Высота тени
|
|
|
+ .background(Color.Black.copy(alpha = 0.2f)) // Цвет и прозрачность тени
|
|
|
+ .offset(y = 2.dp), // Смещение тени вниз
|
|
|
|
|
|
- )
|
|
|
+ )
|
|
|
+
|
|
|
+ // Кнопка
|
|
|
+ Button(
|
|
|
+ onClick = { /*TODO*/ },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .shadow(
|
|
|
+ 0.dp,
|
|
|
+ shape = CircleShape,
|
|
|
+ clip = false
|
|
|
+ ), // Убираем тень у кнопки
|
|
|
+ colors = ButtonDefaults.buttonColors(Color.White),
|
|
|
+ shape = RoundedCornerShape(16.dp) // Скругление кнопки
|
|
|
+ ) {
|
|
|
+ Text(text = "вещи", color = Color(0xFF92A2B0))
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // Кнопка
|
|
|
- Button(
|
|
|
- onClick = { /*TODO*/ },
|
|
|
+ Spacer(modifier = Modifier.width(16.dp))
|
|
|
+
|
|
|
+ // Кнопка "образы"
|
|
|
+ Box(
|
|
|
modifier = Modifier
|
|
|
- .fillMaxWidth()
|
|
|
- .shadow(0.dp, shape = CircleShape, clip = false), // Убираем тень у кнопки
|
|
|
- colors = ButtonDefaults.buttonColors(Color.White),
|
|
|
- shape = RoundedCornerShape(16.dp) // Скругление кнопки
|
|
|
+ .weight(1f)
|
|
|
+ .padding(bottom = 4.dp) // Паддинг для отступа от нижней тени
|
|
|
+ .clip(RoundedCornerShape(16.dp))
|
|
|
) {
|
|
|
- Text(text = "вещи", color = Color(0xFF92A2B0))
|
|
|
+ // Тень
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .align(Alignment.BottomCenter)
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(4.dp) // Высота тени
|
|
|
+ .background(Color.Black.copy(alpha = 0.2f)) // Цвет и прозрачность тени
|
|
|
+ .offset(y = 2.dp) // Смещение тени вниз
|
|
|
+ )
|
|
|
+
|
|
|
+ // Кнопка
|
|
|
+ Button(
|
|
|
+ onClick = { /*TODO*/ },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .shadow(
|
|
|
+ 0.dp,
|
|
|
+ shape = CircleShape,
|
|
|
+ clip = false
|
|
|
+ ), // Убираем тень у кнопки
|
|
|
+ colors = ButtonDefaults.buttonColors(Color.White),
|
|
|
+ shape = RoundedCornerShape(16.dp) // Скругление кнопки
|
|
|
+ ) {
|
|
|
+ Text(text = "образы", color = Color(0xFF92A2B0))
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Spacer(modifier = Modifier.width(16.dp))
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+
|
|
|
+ LazyColumn(
|
|
|
|
|
|
- // Кнопка "образы"
|
|
|
- Box(
|
|
|
modifier = Modifier
|
|
|
- .weight(1f)
|
|
|
- .padding(bottom = 4.dp) // Паддинг для отступа от нижней тени
|
|
|
- .clip(RoundedCornerShape(16.dp))
|
|
|
+ .fillMaxSize(1f)
|
|
|
+ .padding(10.dp)
|
|
|
) {
|
|
|
- // Тень
|
|
|
- Box(
|
|
|
- modifier = Modifier
|
|
|
- .align(Alignment.BottomCenter)
|
|
|
- .fillMaxWidth()
|
|
|
- .height(4.dp) // Высота тени
|
|
|
- .background(Color.Black.copy(alpha = 0.2f)) // Цвет и прозрачность тени
|
|
|
- .offset(y = 2.dp) // Смещение тени вниз
|
|
|
- )
|
|
|
|
|
|
- // Кнопка
|
|
|
- Button(
|
|
|
- onClick = { /*TODO*/ },
|
|
|
- modifier = Modifier
|
|
|
- .fillMaxWidth()
|
|
|
- .shadow(0.dp, shape = CircleShape, clip = false), // Убираем тень у кнопки
|
|
|
- colors = ButtonDefaults.buttonColors(Color.White),
|
|
|
- shape = RoundedCornerShape(16.dp) // Скругление кнопки
|
|
|
- ) {
|
|
|
- Text(text = "образы", color = Color(0xFF92A2B0))
|
|
|
+ items(
|
|
|
+ publicthings,
|
|
|
+ key = { publicthing -> publicthing.id },
|
|
|
+ ) { publicthing ->
|
|
|
+ val imageState = rememberAsyncImagePainter(
|
|
|
+ model = ImageRequest.Builder(LocalContext.current).data(publicthing.img)
|
|
|
+ .size(Size.ORIGINAL).build()
|
|
|
+ ).state
|
|
|
+
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .shadow(8.dp, RoundedCornerShape(30.dp))
|
|
|
+ ) {
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .background(
|
|
|
+
|
|
|
+ Color.White,
|
|
|
+
|
|
|
+ shape = RoundedCornerShape(30.dp)
|
|
|
+ )
|
|
|
+ .padding(8.dp)
|
|
|
+ .wrapContentSize(Alignment.Center)
|
|
|
+
|
|
|
+ ) {
|
|
|
+
|
|
|
+ Column(
|
|
|
+ )
|
|
|
+ {
|
|
|
+ if (imageState is AsyncImagePainter.State.Error) {
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+
|
|
|
+ .height(250.dp),
|
|
|
+ contentAlignment = Alignment.Center
|
|
|
+ ) {
|
|
|
+ CircularProgressIndicator()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (imageState is AsyncImagePainter.State.Success) {
|
|
|
+ Image(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(250.dp)
|
|
|
+// .clip(RoundedCornerShape(8.dp))
|
|
|
+ ,
|
|
|
+ painter = imageState.painter,
|
|
|
+ contentDescription = "",
|
|
|
+ contentScale = ContentScale.Crop
|
|
|
+
|
|
|
+
|
|
|
+ )
|
|
|
+ }
|
|
|
+ Divider(
|
|
|
+ modifier = Modifier.padding(vertical = 8.dp),
|
|
|
+ color = Color.LightGray,
|
|
|
+ thickness = 1.dp
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(8.dp))
|
|
|
+ Text(
|
|
|
+ "Название: ${publicthing.title}",
|
|
|
+ fontSize = 18.sp,
|
|
|
+ modifier = Modifier.padding(start = 8.dp),
|
|
|
+ color = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+ val seasonid = publicthing.seson_id
|
|
|
+ val season = seasondub.find { it.id == seasonid }
|
|
|
+ val styleid = publicthing.id_style
|
|
|
+ val style = styledub.find { it.id == styleid }
|
|
|
+ val subtypeid = publicthing.id_subtype
|
|
|
+ val subtype = subdubtype.find { it.id == subtypeid }
|
|
|
+
|
|
|
+ if (subtype != null) {
|
|
|
+ val typeid = subtype.id_type
|
|
|
+ val type = dubtype.find { it.id == typeid }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (season != null && style != null && type != null) {
|
|
|
+ Text(
|
|
|
+ "Категории: ${style.title_style}, ${type.title_type}, ${subtype.sub_type}, ${season.title_season}",
|
|
|
+ fontSize = 18.sp,
|
|
|
+ modifier = Modifier.padding(start = 8.dp),
|
|
|
+ color = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Spacer(modifier = Modifier.height(1.dp))
|
|
|
+ Text(
|
|
|
+ "Артикул: ${publicthing.article}",
|
|
|
+ fontSize = 18.sp,
|
|
|
+ modifier = Modifier.padding(start = 8.dp),
|
|
|
+ color = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+
|
|
|
+ Spacer(modifier = Modifier.height(8.dp))
|
|
|
+ Row(
|
|
|
+ horizontalArrangement = Arrangement.SpaceAround
|
|
|
+ )
|
|
|
+ {
|
|
|
+ Text(
|
|
|
+ "Рэйтинг: ${publicthing.rating}",
|
|
|
+ fontSize = 18.sp,
|
|
|
+ modifier = Modifier.padding(start = 8.dp),
|
|
|
+ color = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Button(
|
|
|
+ onClick = { navHost.navigate("Registration") },
|
|
|
+ modifier = Modifier
|
|
|
+ .width(200.dp)
|
|
|
+ .height(50.dp)
|
|
|
+ .padding(start = 50.dp),
|
|
|
+ colors = ButtonDefaults.buttonColors(
|
|
|
+ Color(0xFF6F4A48),
|
|
|
+ contentColor = Color.White
|
|
|
+ ),
|
|
|
+ shape = ButtonDefaults.shape
|
|
|
+ ) {
|
|
|
+ Text(
|
|
|
+ text = "Добавить",
|
|
|
+ fontSize = 16.sp,
|
|
|
+ fontWeight = FontWeight.Medium
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Spacer(modifier = Modifier.height(16.dp))
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- Spacer(modifier = Modifier.height(16.dp))
|
|
|
+ }
|
|
|
+ if (isFilterSheetVisible) {
|
|
|
+ Column {
|
|
|
+ Filters(isVisible = isFilterSheetVisible, onClose = { isFilterSheetVisible = false }) // Ваш компонент фильтров
|
|
|
|
|
|
- Card(
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @Composable
|
|
|
+ public fun DrawerContent(navHost: NavHostController) {
|
|
|
+ Column(
|
|
|
modifier = Modifier
|
|
|
+ .fillMaxHeight()
|
|
|
.fillMaxWidth()
|
|
|
- .height(250.dp),
|
|
|
+
|
|
|
+ .background(
|
|
|
+ Brush.verticalGradient(
|
|
|
+ colors = listOf(
|
|
|
+ Color(0xFFF1F1F3),
|
|
|
+ Color(0xFFF1F1F3),
|
|
|
+ Color(0xFFF1F1F3),
|
|
|
+ Color(0xFFF1F1F3),
|
|
|
+ Color(0xFFF1F1F3),
|
|
|
+ Color(0xFFEDE3CF),
|
|
|
+ Color(0xFFEBDBBC),
|
|
|
+ Color(0xFF6F4A48)
|
|
|
+ ),
|
|
|
+
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ,
|
|
|
+ verticalArrangement = Arrangement.Top,
|
|
|
+ horizontalAlignment = Alignment.CenterHorizontally
|
|
|
) {
|
|
|
- Column(
|
|
|
+ Spacer(modifier = Modifier.height(60.dp))
|
|
|
+ Text(
|
|
|
+ text = "EXVESTA",
|
|
|
+ fontSize = 30.sp,
|
|
|
+ fontWeight = FontWeight.Medium,
|
|
|
+ color = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(16.dp))
|
|
|
+ // Аватар пользователя
|
|
|
+ Box(
|
|
|
modifier = Modifier
|
|
|
- .fillMaxSize()
|
|
|
- .padding(16.dp)
|
|
|
+ .shadow(8.dp, CircleShape)
|
|
|
) {
|
|
|
- Image(
|
|
|
- painter = painterResource(id = R.drawable.i),
|
|
|
- contentDescription = "Свитер",
|
|
|
- modifier = Modifier
|
|
|
- .fillMaxWidth()
|
|
|
- .height(150.dp)
|
|
|
- .clip(RoundedCornerShape(8.dp))
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .size(150.dp)
|
|
|
+ .clip(CircleShape)
|
|
|
+ .background(Color(0xFFFFFFFF)),
|
|
|
+ contentAlignment = Alignment.Center
|
|
|
+ ){}}
|
|
|
+ Spacer(modifier = Modifier.height(16.dp))
|
|
|
+ Text(
|
|
|
+ text = "user_name",
|
|
|
+ fontSize = 16.sp,
|
|
|
+ fontWeight = FontWeight.Medium,
|
|
|
+ color = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(32.dp))
|
|
|
+ // Кнопки
|
|
|
+ Button(
|
|
|
+ onClick = { /* TODO: Открыть "Мои образы" */ },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(48.dp),
|
|
|
+ colors = ButtonDefaults.buttonColors(
|
|
|
+ Color(0xFFF0F0F0),
|
|
|
+ contentColor = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ Text("Мои образы")
|
|
|
+ }
|
|
|
+ Spacer(modifier = Modifier.height(8.dp))
|
|
|
+ Button(
|
|
|
+ onClick = { navHost.navigate("Wardrob") },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(48.dp),
|
|
|
+ colors = ButtonDefaults.buttonColors(
|
|
|
+ Color(0xFFF0F0F0),
|
|
|
+ contentColor = Color(0xFF92A2B0)
|
|
|
)
|
|
|
- Spacer(modifier = Modifier.height(8.dp))
|
|
|
- Text(text = "название: свитер")
|
|
|
- Text(text = "категории: верхняя одежда, кофты, пряжа")
|
|
|
- Text(text = "артикул: 38423")
|
|
|
+ ) {
|
|
|
+ Text("Коллекция")
|
|
|
+ }
|
|
|
+ Spacer(modifier = Modifier.height(8.dp))
|
|
|
+ Button(
|
|
|
+ onClick = { navHost.navigate("Home") },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(48.dp),
|
|
|
+ colors = ButtonDefaults.buttonColors(
|
|
|
+ Color(0xFFF0F0F0),
|
|
|
+ contentColor = Color(0xFF92A2B0)
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ Text("Лента")
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-}
|