package co.electriccoin.zcash.ui.design.component import androidx.compose.foundation.border import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.MaterialTheme import androidx.compose.material3.TextField import androidx.compose.material3.TextFieldColors import androidx.compose.material3.TextFieldDefaults import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import co.electriccoin.zcash.ui.design.theme.ZcashTheme @Suppress("LongParameterList") @Composable fun FormTextField( value: String, onValueChange: (String) -> Unit, modifier: Modifier = Modifier, textStyle: TextStyle = ZcashTheme.extendedTypography.textFieldValue, label: @Composable (() -> Unit)? = null, leadingIcon: @Composable (() -> Unit)? = null, trailingIcon: @Composable (() -> Unit)? = null, keyboardOptions: KeyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text), colors: TextFieldColors = TextFieldDefaults.colors( focusedContainerColor = Color.Transparent, unfocusedContainerColor = Color.Transparent, disabledContainerColor = Color.Transparent, errorContainerColor = Color.Transparent, ), keyboardActions: KeyboardActions = KeyboardActions.Default, shape: Shape = TextFieldDefaults.shape, // To enable border around the TextField withBorder: Boolean = true, ) { TextField( value = value, onValueChange = onValueChange, label = label, textStyle = textStyle, keyboardOptions = keyboardOptions, colors = colors, modifier = modifier.then( if (withBorder) { modifier.border(width = 1.dp, color = MaterialTheme.colorScheme.primary) } else { Modifier } ), leadingIcon = leadingIcon, trailingIcon = trailingIcon, keyboardActions = keyboardActions, shape = shape ) }