main #4
@@ -23,26 +23,46 @@ import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import ru.myitschool.work.R
|
||||
import ru.myitschool.work.ui.theme.Black
|
||||
import ru.myitschool.work.ui.theme.Gray
|
||||
import ru.myitschool.work.ui.theme.Typography
|
||||
import ru.myitschool.work.ui.theme.White
|
||||
|
||||
@Composable
|
||||
fun BaseText24(
|
||||
text: String,
|
||||
modifier: Modifier = Modifier,
|
||||
color: Color = Color.Unspecified,
|
||||
color: Color = Black,
|
||||
textAlign: TextAlign = TextAlign.Left
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
fontSize = 24.sp,
|
||||
style = _root_ide_package_.ru.myitschool.work.ui.theme.Typography.bodyLarge,
|
||||
style = Typography.bodyLarge,
|
||||
modifier = modifier,
|
||||
color = color,
|
||||
textAlign = textAlign
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BaseNoBackgroundButton(
|
||||
text: String,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
Button(
|
||||
onClick = onClick,
|
||||
colors = ButtonDefaults.buttonColors(
|
||||
containerColor = Color.Transparent,
|
||||
contentColor = White,
|
||||
disabledContainerColor = Color.Transparent,
|
||||
disabledContentColor = White
|
||||
)
|
||||
) {
|
||||
BaseText16(text = text, color = White)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun Logo() {
|
||||
Image(
|
||||
@@ -56,11 +76,11 @@ fun Logo() {
|
||||
fun BaseText16(
|
||||
text: String,
|
||||
modifier: Modifier = Modifier,
|
||||
color: Color = Color.Unspecified
|
||||
color: Color = Black,
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style = _root_ide_package_.ru.myitschool.work.ui.theme.Typography.bodySmall,
|
||||
style = Typography.bodySmall,
|
||||
fontSize = 16.sp,
|
||||
color = color,
|
||||
modifier = modifier
|
||||
@@ -71,17 +91,32 @@ fun BaseText16(
|
||||
fun BaseText12(
|
||||
modifier: Modifier = Modifier,
|
||||
text: String,
|
||||
color: Color = Color.Unspecified,
|
||||
color: Color = Black,
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style = _root_ide_package_.ru.myitschool.work.ui.theme.Typography.bodySmall,
|
||||
style = Typography.bodySmall,
|
||||
fontSize = 12.sp,
|
||||
color = color,
|
||||
modifier = modifier,
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BaseText14(
|
||||
modifier: Modifier = Modifier,
|
||||
text: String,
|
||||
color: Color = Black,
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style = Typography.bodySmall,
|
||||
fontSize = 14.sp,
|
||||
color = color,
|
||||
modifier = modifier,
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BaseInputText(
|
||||
placeholder: String= "",
|
||||
@@ -97,12 +132,12 @@ fun BaseInputText(
|
||||
},
|
||||
shape = RoundedCornerShape(16.dp),
|
||||
placeholder = {
|
||||
_root_ide_package_.ru.myitschool.work.ui.BaseText16(
|
||||
BaseText16(
|
||||
text = placeholder,
|
||||
color = _root_ide_package_.ru.myitschool.work.ui.theme.Gray
|
||||
color = Gray
|
||||
)
|
||||
},
|
||||
textStyle = _root_ide_package_.ru.myitschool.work.ui.theme.Typography.bodySmall.copy(fontSize = 16.sp),
|
||||
textStyle = Typography.bodySmall.copy(fontSize = 16.sp),
|
||||
colors = TextFieldDefaults.colors(
|
||||
focusedIndicatorColor = Color.Transparent,
|
||||
unfocusedIndicatorColor = Color.Transparent,
|
||||
@@ -118,14 +153,17 @@ fun BaseInputText(
|
||||
fun BaseText20(
|
||||
text: String,
|
||||
color: Color = Color.Unspecified,
|
||||
style: TextStyle = _root_ide_package_.ru.myitschool.work.ui.theme.Typography.bodySmall,
|
||||
style: TextStyle = Typography.bodySmall,
|
||||
modifier: Modifier = Modifier.padding(7.dp),
|
||||
textAlign: TextAlign = TextAlign.Unspecified
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style = style,
|
||||
fontSize = 20.sp,
|
||||
modifier = Modifier.padding(7.dp),
|
||||
color = color
|
||||
modifier = modifier,
|
||||
color = color,
|
||||
textAlign = textAlign
|
||||
)
|
||||
}
|
||||
|
||||
@@ -150,6 +188,6 @@ fun BaseButton(
|
||||
shape = RoundedCornerShape(16.dp),
|
||||
) {
|
||||
icon()
|
||||
_root_ide_package_.ru.myitschool.work.ui.BaseText20(text = text)
|
||||
BaseText20(text = text)
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,8 @@ import ru.myitschool.work.ui.nav.AuthScreenDestination
|
||||
import ru.myitschool.work.ui.nav.BookScreenDestination
|
||||
import ru.myitschool.work.ui.nav.MainScreenDestination
|
||||
import ru.myitschool.work.ui.screen.auth.AuthScreen
|
||||
import ru.myitschool.work.ui.screen.book.BookScreen
|
||||
import ru.myitschool.work.ui.screen.main.MainScreen
|
||||
|
||||
@Composable
|
||||
fun AppNavHost(
|
||||
@@ -33,18 +35,14 @@ fun AppNavHost(
|
||||
navController = navController)
|
||||
}
|
||||
composable<MainScreenDestination> {
|
||||
Box(
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Text(text = "Hello")
|
||||
}
|
||||
MainScreen(
|
||||
navController = navController
|
||||
)
|
||||
}
|
||||
composable<BookScreenDestination> {
|
||||
Box(
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Text(text = "Hello")
|
||||
}
|
||||
BookScreen(
|
||||
navController = navController
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,7 +82,7 @@ fun AuthScreen(
|
||||
|
||||
BaseButton(
|
||||
text = stringResource(R.string.auth_sign_in),
|
||||
onClick = {},
|
||||
onClick = { navController.navigate(MainScreenDestination)},
|
||||
btnColor = Blue,
|
||||
btnContentColor = White
|
||||
)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package ru.myitschool.work.ui.screen.book
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.navigation.NavController
|
||||
|
||||
@Composable
|
||||
fun BookScreen(
|
||||
navController: NavController
|
||||
) {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
package ru.myitschool.work.ui.screen.main
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
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.width
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.navigation.NavController
|
||||
import ru.myitschool.work.R
|
||||
import ru.myitschool.work.ui.BaseButton
|
||||
import ru.myitschool.work.ui.BaseNoBackgroundButton
|
||||
import ru.myitschool.work.ui.BaseText14
|
||||
import ru.myitschool.work.ui.BaseText16
|
||||
import ru.myitschool.work.ui.BaseText20
|
||||
import ru.myitschool.work.ui.nav.BookScreenDestination
|
||||
import ru.myitschool.work.ui.theme.Black
|
||||
import ru.myitschool.work.ui.theme.Blue
|
||||
import ru.myitschool.work.ui.theme.LightGray
|
||||
import ru.myitschool.work.ui.theme.Typography
|
||||
import ru.myitschool.work.ui.theme.White
|
||||
|
||||
@Composable
|
||||
fun MainScreen(
|
||||
navController: NavController
|
||||
) {
|
||||
Column (
|
||||
modifier = Modifier
|
||||
.background(LightGray)
|
||||
.fillMaxSize()
|
||||
) {
|
||||
Column(
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
modifier = Modifier
|
||||
.clip(RoundedCornerShape(bottomStart = 16.dp, bottomEnd = 16.dp))
|
||||
.background(Blue)
|
||||
.fillMaxWidth()
|
||||
.padding(10.dp)
|
||||
) {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
|
||||
BaseNoBackgroundButton(
|
||||
text = "Обновить",
|
||||
onClick = { }
|
||||
)
|
||||
|
||||
BaseNoBackgroundButton(
|
||||
text = "Выйти",
|
||||
onClick = { }
|
||||
)
|
||||
}
|
||||
|
||||
Image(
|
||||
painter = painterResource(R.drawable.avatar),
|
||||
contentDescription = "User avatar",
|
||||
modifier = Modifier.padding(20.dp)
|
||||
)
|
||||
|
||||
BaseText20(
|
||||
text = "Артемий Артемиев Иванович",
|
||||
color = White,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.width(250.dp),
|
||||
style = Typography.bodyLarge
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(20.dp))
|
||||
}
|
||||
Column(
|
||||
verticalArrangement = Arrangement.SpaceBetween,
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(20.dp)
|
||||
.clip(RoundedCornerShape(16.dp))
|
||||
.background(White)
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Text(
|
||||
text = "Ваши забронированные места",
|
||||
style = Typography.bodyMedium,
|
||||
color = Black,
|
||||
fontSize = 16.sp,
|
||||
modifier = Modifier.padding(
|
||||
horizontal = 10.dp,
|
||||
vertical = 20.dp
|
||||
)
|
||||
)
|
||||
BookList()
|
||||
}
|
||||
BaseButton(
|
||||
text = "Бронировать",
|
||||
btnColor = Blue,
|
||||
btnContentColor = White,
|
||||
onClick = { navController.navigate(BookScreenDestination)},
|
||||
modifier = Modifier
|
||||
.padding(horizontal = 10.dp, vertical = 15.dp)
|
||||
.fillMaxWidth()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BookList() {
|
||||
Column(
|
||||
modifier = Modifier.padding(horizontal = 20.dp)
|
||||
) {
|
||||
BookListElement()
|
||||
BookListElement()
|
||||
BookListElement()
|
||||
BookListElement()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BookListElement() {
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(vertical = 20.dp),
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
BaseText14(
|
||||
text = "Конгресс Холл"
|
||||
)
|
||||
BaseText14(
|
||||
text = "16.02.3026"
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -16,4 +16,8 @@ val Gray = Color(0xFF777777)
|
||||
|
||||
val White = Color(0xFFFFFFFF)
|
||||
|
||||
val Red = Color(0xFFFF4D4D)
|
||||
val Red = Color(0xFFFF4D4D)
|
||||
|
||||
val LightGray = Color(0xFFF2F1F7)
|
||||
|
||||
val Black = Color(0xFF000000)
|
||||
14
app/src/main/res/drawable/avatar.xml
Normal file
14
app/src/main/res/drawable/avatar.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="100dp"
|
||||
android:height="100dp"
|
||||
android:viewportWidth="100"
|
||||
android:viewportHeight="100">
|
||||
<path
|
||||
android:pathData="M50,50m-48.5,0a48.5,48.5 0,1 1,97 0a48.5,48.5 0,1 1,-97 0"
|
||||
android:strokeWidth="3"
|
||||
android:fillColor="#AEC3FF"
|
||||
android:strokeColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M61.99,54.17C64.58,54.17 66.67,56.26 66.67,58.85V60.05C66.67,61.91 66.01,63.71 64.8,65.13C61.53,68.95 56.55,70.83 50,70.83C43.45,70.83 38.48,68.95 35.21,65.13C34,63.71 33.34,61.91 33.34,60.05V58.85C33.34,56.26 35.44,54.17 38.03,54.17H61.99ZM61.99,57.29H38.03C37.16,57.29 36.47,57.99 36.47,58.85V60.05C36.47,61.17 36.86,62.25 37.59,63.1C40.2,66.16 44.3,67.71 50,67.71C55.71,67.71 59.8,66.16 62.42,63.1C63.15,62.25 63.55,61.17 63.55,60.05V58.85C63.55,57.99 62.85,57.29 61.99,57.29ZM50,29.18C55.75,29.18 60.42,33.84 60.42,39.59C60.42,45.35 55.75,50.01 50,50.01C44.25,50.01 39.58,45.35 39.58,39.59C39.58,33.84 44.25,29.18 50,29.18ZM50,32.3C45.97,32.3 42.71,35.57 42.71,39.59C42.71,43.62 45.97,46.88 50,46.88C54.03,46.88 57.29,43.62 57.29,39.59C57.29,35.57 54.03,32.3 50,32.3Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
Reference in New Issue
Block a user