package com.monika.orangesky
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.PasswordVisualTransformation
import androidx.compose.ui.unit.dp
import com.monika.orangesky.data.User
import kotlinx.coroutines.launch
@Composable
fun LoginScreen(
onLogin: () -> Unit,
onRegister: () -> Unit,
database: com.monika.orangesky.data.AppDatabase // Передаем базу данных
) {
var username by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
val scope = rememberCoroutineScope()
var errorMessage by remember { mutableStateOf("") }
Column(modifier = Modifier.fillMaxSize().padding(24.dp), verticalArrangement = Arrangement.Center) {
OutlinedTextField(value = username, onValueChange = { username = it }, label = { Text("Никнейм") }, modifier = Modifier.fillMaxWidth())
Spacer(modifier = Modifier.height(12.dp))
OutlinedTextField(value = password, onValueChange = { password = it }, label = { Text("Пароль") }, modifier = Modifier.fillMaxWidth(), visualTransformation = PasswordVisualTransformation())
if (errorMessage.isNotEmpty()) Text(errorMessage, color = MaterialTheme.colorScheme.error)
Button(onClick = {
scope.launch {
val user = database.userDao().getUser(username)
if (user != null && user.password == password) {
onLogin()
} else {
errorMessage = "Неверный никнейм или пароль"
}
}
}, modifier = Modifier.fillMaxWidth().padding(top = 16.dp)) {
Text("Войти")
}
TextButton(onClick = onRegister, modifier = Modifier.fillMaxWidth()) {
Text("Создать аккаунт")
}
}
}