mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2024-11-29 21:48:45 +00:00
67 lines
2.4 KiB
Kotlin
67 lines
2.4 KiB
Kotlin
|
package dev.inmo.micro_utils.android.smalltextfield
|
||
|
|
||
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||
|
import androidx.compose.foundation.layout.Box
|
||
|
import androidx.compose.foundation.layout.Row
|
||
|
import androidx.compose.foundation.layout.defaultMinSize
|
||
|
import androidx.compose.foundation.text.BasicTextField
|
||
|
import androidx.compose.foundation.text.KeyboardActions
|
||
|
import androidx.compose.foundation.text.KeyboardOptions
|
||
|
import androidx.compose.foundation.text.selection.LocalTextSelectionColors
|
||
|
import androidx.compose.material3.*
|
||
|
import androidx.compose.runtime.Composable
|
||
|
import androidx.compose.runtime.CompositionLocalProvider
|
||
|
import androidx.compose.runtime.remember
|
||
|
import androidx.compose.ui.Alignment
|
||
|
import androidx.compose.ui.Modifier
|
||
|
import androidx.compose.ui.graphics.Color
|
||
|
import androidx.compose.ui.graphics.Shape
|
||
|
import androidx.compose.ui.graphics.SolidColor
|
||
|
import androidx.compose.ui.graphics.takeOrElse
|
||
|
import androidx.compose.ui.text.TextStyle
|
||
|
import androidx.compose.ui.text.input.VisualTransformation
|
||
|
|
||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||
|
@Composable
|
||
|
fun SmallTextField(
|
||
|
value: String,
|
||
|
onValueChange: (String) -> Unit,
|
||
|
modifier: Modifier = Modifier,
|
||
|
enabled: Boolean = true,
|
||
|
readOnly: Boolean = false,
|
||
|
textStyle: TextStyle = LocalTextStyle.current,
|
||
|
textColor: Color = textStyle.color.takeOrElse {
|
||
|
LocalContentColor.current
|
||
|
},
|
||
|
visualTransformation: VisualTransformation = VisualTransformation.None,
|
||
|
keyboardOptions: KeyboardOptions = KeyboardOptions.Default,
|
||
|
keyboardActions: KeyboardActions = KeyboardActions.Default,
|
||
|
singleLine: Boolean = false,
|
||
|
maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE,
|
||
|
minLines: Int = 1,
|
||
|
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||
|
) {
|
||
|
BasicTextField(
|
||
|
value = value,
|
||
|
modifier = modifier,
|
||
|
onValueChange = onValueChange,
|
||
|
enabled = enabled,
|
||
|
readOnly = readOnly,
|
||
|
textStyle = textStyle.copy(
|
||
|
color = textColor
|
||
|
),
|
||
|
visualTransformation = visualTransformation,
|
||
|
keyboardOptions = keyboardOptions,
|
||
|
keyboardActions = keyboardActions,
|
||
|
interactionSource = interactionSource,
|
||
|
singleLine = singleLine,
|
||
|
maxLines = maxLines,
|
||
|
minLines = minLines,
|
||
|
cursorBrush = SolidColor(
|
||
|
textStyle.color.takeOrElse {
|
||
|
LocalContentColor.current
|
||
|
}
|
||
|
)
|
||
|
)
|
||
|
}
|