@Composable
fun WelcomeScreen() {
Background()
lateinit var viewModel:UserViewModel
var nameUser by rememberSaveable {
mutableStateOf("")
}
var kgUser by rememberSaveable {
mutableStateOf("")
}
var genderUser by rememberSaveable {
mutableStateOf("")
}
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Добро пожаловать",
color = MaterialTheme.colors.secondary,
fontSize = 30.sp
)
OutlinedTextField(
value = nameUser,
onValueChange = { nameUser = it },
label = { Text(text = "Имя") }
)
OutlinedTextField(
value = kgUser,
onValueChange = { kgUser = it },
label = { Text(text = "Вес") },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)
)
OutlinedTextField(
value = genderUser,
onValueChange = { genderUser = it },
label = { Text(text = "Рост") },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)
)
Button(
onClick = {
val user = User(
name = nameUser.trim(),
id = 1,
kg = kgUser.trim(),
gender = genderUser.trim()
)
addUserInDB(user,viewModel)
}
) {
Text(
text = "Далее",
color = androidx.compose.material3.MaterialTheme.colorScheme.background
)
}
}
}
@HiltViewModel
class UserViewModel @Inject constructor(
private val userRepository: UserRepository
) : ViewModel() {
val userList: LiveData<List<User>> = userRepository.allUser
val foundUser: LiveData<User> = userRepository.foundUser
private fun getAllUser(){
userRepository.allUser
}
fun addUser(user: User){
userRepository.addUser(user)
getAllUser()
}
fun updateUser(user: User){
userRepository.updateUserDetails(user)
getAllUser()
}
}
fun addUserInDB(
user: User,
userViewModel: UserViewModel
){
userViewModel.addUser(user)
}