Skip to content

Commit d5dae0f

Browse files
PratyushSingh07therajanmaurya
authored andcommitted
design: divider in login screen
1 parent abc64ad commit d5dae0f

File tree

1 file changed

+44
-5
lines changed

1 file changed

+44
-5
lines changed

app/src/main/java/org/mifos/mobile/ui/login/LoginScreen.kt

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package org.mifos.mobile.ui.login
33
import android.content.res.Configuration.UI_MODE_NIGHT_NO
44
import androidx.compose.foundation.gestures.detectTapGestures
55
import androidx.compose.foundation.isSystemInDarkTheme
6+
import androidx.compose.foundation.layout.Arrangement
67
import androidx.compose.foundation.layout.Column
78
import androidx.compose.foundation.layout.PaddingValues
9+
import androidx.compose.foundation.layout.Row
810
import androidx.compose.foundation.layout.Spacer
911
import androidx.compose.foundation.layout.fillMaxSize
1012
import androidx.compose.foundation.layout.fillMaxWidth
@@ -18,14 +20,14 @@ import androidx.compose.material.icons.filled.Visibility
1820
import androidx.compose.material.icons.filled.VisibilityOff
1921
import androidx.compose.material3.Button
2022
import androidx.compose.material3.ButtonDefaults
23+
import androidx.compose.material3.Divider
2124
import androidx.compose.material3.Icon
2225
import androidx.compose.material3.IconButton
2326
import androidx.compose.material3.Text
2427
import androidx.compose.material3.TextButton
2528
import androidx.compose.runtime.Composable
2629
import androidx.compose.runtime.getValue
2730
import androidx.compose.runtime.mutableStateOf
28-
import androidx.compose.runtime.remember
2931
import androidx.compose.runtime.saveable.rememberSaveable
3032
import androidx.compose.runtime.setValue
3133
import androidx.compose.ui.Alignment
@@ -39,6 +41,7 @@ import androidx.compose.ui.text.input.TextFieldValue
3941
import androidx.compose.ui.text.input.VisualTransformation
4042
import androidx.compose.ui.tooling.preview.Preview
4143
import androidx.compose.ui.unit.dp
44+
import androidx.compose.ui.unit.sp
4245
import org.mifos.mobile.R
4346
import org.mifos.mobile.core.ui.component.MifosMobileIcon
4447
import org.mifos.mobile.core.ui.component.MifosOutlinedTextField
@@ -52,13 +55,21 @@ fun LoginScreen(
5255
) {
5356
val keyboardController = LocalSoftwareKeyboardController.current
5457

55-
var username by rememberSaveable(stateSaver = TextFieldValue.Saver) { mutableStateOf(TextFieldValue(""))}
56-
var password by rememberSaveable(stateSaver = TextFieldValue.Saver) {mutableStateOf( TextFieldValue(""))}
58+
var username by rememberSaveable(stateSaver = TextFieldValue.Saver) {
59+
mutableStateOf(
60+
TextFieldValue("")
61+
)
62+
}
63+
var password by rememberSaveable(stateSaver = TextFieldValue.Saver) {
64+
mutableStateOf(
65+
TextFieldValue("")
66+
)
67+
}
5768

58-
var passwordVisibility: Boolean by remember { mutableStateOf(false) }
69+
var passwordVisibility: Boolean by rememberSaveable { mutableStateOf(false) }
5970

6071
var usernameError by rememberSaveable { mutableStateOf(false) }
61-
var passwordError by rememberSaveable { mutableStateOf(false)}
72+
var passwordError by rememberSaveable { mutableStateOf(false) }
6273

6374
val usernameErrorContent = getUsernameError.invoke(username.text)
6475
val passwordErrorContent = getPasswordError.invoke(password.text)
@@ -128,12 +139,15 @@ fun LoginScreen(
128139
usernameErrorContent.isEmpty() && passwordErrorContent.isEmpty() -> {
129140
login.invoke(username.text, password.text)
130141
}
142+
131143
usernameErrorContent.isEmpty() && passwordErrorContent.isNotEmpty() -> {
132144
passwordError = true
133145
}
146+
134147
usernameErrorContent.isNotEmpty() && passwordErrorContent.isEmpty() -> {
135148
usernameError = true
136149
}
150+
137151
else -> {
138152
passwordError = true
139153
usernameError = true
@@ -156,6 +170,31 @@ fun LoginScreen(
156170

157171
Spacer(modifier = Modifier.height(16.dp))
158172

173+
Row(
174+
modifier = Modifier.fillMaxWidth(),
175+
verticalAlignment = Alignment.CenterVertically,
176+
horizontalArrangement = Arrangement.SpaceEvenly
177+
) {
178+
Divider(
179+
modifier = Modifier
180+
.fillMaxWidth()
181+
.padding(start = 16.dp)
182+
.weight(1f), color = Color.Gray, thickness = 1.dp
183+
)
184+
Text(
185+
modifier = Modifier.padding(8.dp),
186+
text = "or",
187+
fontSize = 18.sp,
188+
color = if (isSystemInDarkTheme()) Color.White else Color.Black
189+
)
190+
Divider(
191+
modifier = Modifier
192+
.fillMaxWidth()
193+
.padding(end = 16.dp)
194+
.weight(1f), color = Color.Gray, thickness = 1.dp
195+
)
196+
}
197+
159198
TextButton(
160199
onClick = {
161200
createAccount.invoke()

0 commit comments

Comments
 (0)