|
@@ -1,8 +1,250 @@
|
|
|
package com.example.iplace.main.viewModel.mainView
|
|
|
|
|
|
+import androidx.compose.foundation.background
|
|
|
+import androidx.compose.foundation.clickable
|
|
|
+import androidx.compose.foundation.layout.Arrangement
|
|
|
+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.fillMaxSize
|
|
|
+import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
+import androidx.compose.foundation.layout.height
|
|
|
+import androidx.compose.foundation.layout.padding
|
|
|
+import androidx.compose.foundation.layout.size
|
|
|
+import androidx.compose.foundation.layout.width
|
|
|
+import androidx.compose.foundation.shape.CircleShape
|
|
|
+import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
+import androidx.compose.material.icons.Icons
|
|
|
+import androidx.compose.material.icons.filled.ArrowBack
|
|
|
+import androidx.compose.material.icons.filled.KeyboardArrowDown
|
|
|
+import androidx.compose.material.icons.filled.KeyboardArrowUp
|
|
|
+import androidx.compose.material.icons.filled.Settings
|
|
|
+import androidx.compose.material3.Button
|
|
|
+import androidx.compose.material3.ButtonDefaults
|
|
|
+import androidx.compose.material3.Icon
|
|
|
+import androidx.compose.material3.IconButton
|
|
|
+import androidx.compose.material3.OutlinedTextField
|
|
|
+import androidx.compose.material3.Text
|
|
|
import androidx.compose.runtime.Composable
|
|
|
+import androidx.compose.runtime.getValue
|
|
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
+import androidx.compose.runtime.remember
|
|
|
+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.graphics.Color
|
|
|
+import androidx.compose.ui.text.font.Font
|
|
|
+import androidx.compose.ui.text.font.FontFamily
|
|
|
+import androidx.compose.ui.text.font.FontWeight
|
|
|
+import androidx.compose.ui.text.style.TextAlign
|
|
|
+import androidx.compose.ui.unit.dp
|
|
|
+import androidx.compose.ui.unit.sp
|
|
|
import androidx.navigation.NavHostController
|
|
|
+import com.example.iplace.R
|
|
|
+import com.example.iplace.main.viewModel.MainViewModel
|
|
|
+import com.example.iplace.ui.theme.brown_contrast
|
|
|
|
|
|
@Composable
|
|
|
fun AddPlace(navController: NavHostController) {
|
|
|
+ val viewModel = MainViewModel()
|
|
|
+ val headlinesOswald = FontFamily( //выбор шрифта
|
|
|
+ Font(resId = R.font.headlines_oswald)
|
|
|
+ )
|
|
|
+ val basicNunitosans = FontFamily(
|
|
|
+ Font(resId = R.font.basic_nunitosans)
|
|
|
+ )
|
|
|
+ var expanded by remember { mutableStateOf(false) }
|
|
|
+ Column(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxSize()
|
|
|
+ .background(Color.White)
|
|
|
+ ) {
|
|
|
+ Spacer(modifier = Modifier.height(20.dp))
|
|
|
+ // Верхний блок (2/5 размера экрана)
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .weight(1f)
|
|
|
+ .background(Color.LightGray)
|
|
|
+ .padding(16.dp),
|
|
|
+ contentAlignment = Alignment.TopCenter
|
|
|
+ ) {
|
|
|
+
|
|
|
+ // Кнопки назад и настроек
|
|
|
+ Row(
|
|
|
+ modifier = Modifier.fillMaxWidth(),
|
|
|
+ horizontalArrangement = Arrangement.SpaceBetween,
|
|
|
+ verticalAlignment = Alignment.CenterVertically
|
|
|
+ ) {
|
|
|
+ IconButton(onClick = { navController.navigate("MenuV") }) {
|
|
|
+ Icon(Icons.Filled.ArrowBack, contentDescription = "Назад")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Spacer(modifier = Modifier.height(60.dp))
|
|
|
+
|
|
|
+ // Заголовок "Профиль"
|
|
|
+ Text(
|
|
|
+ text = "Добавление места",
|
|
|
+ fontWeight = FontWeight.Bold,
|
|
|
+ modifier = Modifier
|
|
|
+ .padding(top = 32.dp)
|
|
|
+ .fillMaxWidth(),
|
|
|
+ textAlign = TextAlign.Center
|
|
|
+ )
|
|
|
+
|
|
|
+ // Блок с фотографией, именем и гендером
|
|
|
+ Column(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(top = 64.dp),
|
|
|
+ horizontalAlignment = Alignment.CenterHorizontally
|
|
|
+ ) {
|
|
|
+ Text(text = "фото")
|
|
|
+ Button(onClick = { }) {
|
|
|
+ Text("добавить фото")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Остальной контент (3/5 размера экрана)
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .weight(3f)
|
|
|
+ .fillMaxSize()
|
|
|
+ .background(Color.White)
|
|
|
+ ) {
|
|
|
+ Column(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(top = 64.dp),
|
|
|
+ horizontalAlignment = Alignment.CenterHorizontally
|
|
|
+ ) {
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("Название") },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+ Box(
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ .background(Color.White) // Фон выпадающего списка
|
|
|
+ .clickable { expanded = !expanded } // Клик для раскрытия/сворачивания
|
|
|
+ ) {
|
|
|
+ // Выбранный элемент
|
|
|
+ Text(
|
|
|
+ text = "",
|
|
|
+ modifier = Modifier.padding(16.dp),
|
|
|
+ color = Color.Gray // Цвет текста выбранного элемента
|
|
|
+ )
|
|
|
+
|
|
|
+ // Иконка раскрытия/сворачивания
|
|
|
+ Icon(
|
|
|
+ imageVector = if (expanded) Icons.Filled.KeyboardArrowUp else Icons.Filled.KeyboardArrowDown,
|
|
|
+ contentDescription = null,
|
|
|
+ modifier = Modifier
|
|
|
+ .align(Alignment.BottomEnd)
|
|
|
+ .padding(16.dp)
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("Адресс") },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("Описание") },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+ Button(onClick = { }) {
|
|
|
+ Text("Выбрать еще фото")
|
|
|
+ }
|
|
|
+ Spacer(modifier = Modifier.height(10.dp))
|
|
|
+ Row(
|
|
|
+ modifier = Modifier.fillMaxWidth(),
|
|
|
+ horizontalArrangement = Arrangement.SpaceBetween,
|
|
|
+ verticalAlignment = Alignment.CenterVertically
|
|
|
+ ) {
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("фото") },
|
|
|
+ modifier = Modifier
|
|
|
+ .height(100.dp)
|
|
|
+ .width(100.dp)
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("фото") },
|
|
|
+ modifier = Modifier
|
|
|
+ .height(100.dp)
|
|
|
+ .width(100.dp)
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("фото") },
|
|
|
+ modifier = Modifier
|
|
|
+ .height(100.dp)
|
|
|
+ .width(100.dp)
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ Spacer(modifier = Modifier.height(15.dp))
|
|
|
+
|
|
|
+ OutlinedTextField(
|
|
|
+ value = "",
|
|
|
+ onValueChange = {},
|
|
|
+ label = { Text("Быть автором?") },
|
|
|
+ modifier = Modifier
|
|
|
+ .fillMaxWidth()
|
|
|
+ .height(45.dp)
|
|
|
+ .padding(horizontal = 16.dp)
|
|
|
+ .clip(RoundedCornerShape(20.dp))
|
|
|
+ )
|
|
|
+ Spacer(modifier = Modifier.height(15.dp))
|
|
|
+ Button(
|
|
|
+ onClick = { navController.navigate("placeV") },
|
|
|
+ modifier = Modifier.width(290.dp).height(50.dp),
|
|
|
+ colors = ButtonDefaults.buttonColors(brown_contrast)
|
|
|
+ ) {
|
|
|
+ Text(
|
|
|
+ text = "Сохранить",
|
|
|
+ fontSize = 24.sp,
|
|
|
+ fontFamily = basicNunitosans
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|