diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/login/ui/componets/OutlinedTextFiledWithErrors.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/login/ui/componets/OutlinedTextFiledWithErrors.kt new file mode 100644 index 0000000..c46dcee --- /dev/null +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/login/ui/componets/OutlinedTextFiledWithErrors.kt @@ -0,0 +1,55 @@ +package `in`.sminnovations.attendanceapp.screens.login.ui.componets + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun OutlinedTextFieldWithError( + value: String, + onValueChange: (String) -> Unit, + label: String, + isError: Boolean, + errorMessage: String, + modifier: Modifier = Modifier, + leadingIcon: @Composable (() -> Unit)? = null, + trailingIcon: @Composable (() -> Unit)? = null, + visualTransformation: VisualTransformation = VisualTransformation.None +) { + Column(modifier = modifier) { + OutlinedTextField( + value = value, + onValueChange = onValueChange, + label = { Text(label) }, + isError = isError, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + visualTransformation = visualTransformation, + modifier = Modifier.fillMaxWidth(), + colors = OutlinedTextFieldDefaults.colors( + focusedBorderColor = if (isError) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.primary, + unfocusedBorderColor = if (isError) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.12f), + focusedLabelColor = if (isError) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.primary, + unfocusedLabelColor = if (isError) MaterialTheme.colorScheme.error else MaterialTheme.colorScheme.onSurfaceVariant + ) + ) + if (isError) { + Text( + text = errorMessage, + color = MaterialTheme.colorScheme.error, + style = TextStyle(fontSize = 12.sp), + modifier = Modifier.padding(start = 16.dp, top = 4.dp) + ) + } + } +} \ No newline at end of file