63 lines
2.2 KiB
Kotlin
63 lines
2.2 KiB
Kotlin
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
|
|
)
|
|
}
|