From e9cd8401b5d8e8245781ebd42d19c5cb069d4fe7 Mon Sep 17 00:00:00 2001 From: lbarraga Date: Sat, 8 Apr 2023 22:25:17 +0200 Subject: [PATCH] #7 added loginscreen --- .../sel/studeez/screens/log_in/LoginScreen.kt | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt new file mode 100644 index 0000000..067011b --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt @@ -0,0 +1,52 @@ +package be.ugent.sel.studeez.screens.sign_in + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.hilt.navigation.compose.hiltViewModel +import be.ugent.sel.studeez.common.composable.* +import be.ugent.sel.studeez.common.ext.basicButton +import be.ugent.sel.studeez.common.ext.fieldModifier +import be.ugent.sel.studeez.common.ext.textButton +import be.ugent.sel.studeez.resources +import be.ugent.sel.studeez.R.string as AppText + +@Composable +fun LoginScreen( + openAndPopUp: (String, String) -> Unit, + modifier: Modifier = Modifier, + viewModel: LoginViewModel = hiltViewModel() +) { + val uiState by viewModel.uiState + + SecondaryScreenToolbar(title = resources().getString(AppText.sign_in)) { + Column( + modifier = modifier + .fillMaxWidth() + .fillMaxHeight() + .verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + EmailField(uiState.email, viewModel::onEmailChange, Modifier.fieldModifier()) + PasswordField(uiState.password, viewModel::onPasswordChange, Modifier.fieldModifier()) + + BasicButton(AppText.sign_in, Modifier.basicButton()) { viewModel.onSignInClick(openAndPopUp) } + + BasicTextButton(AppText.not_already_user, Modifier.textButton()) { + viewModel.onNotAlreadyUser(openAndPopUp) + } + + BasicTextButton(AppText.forgot_password, Modifier.textButton()) { + viewModel.onForgotPasswordClick() + } + } + } +} \ No newline at end of file