11package ch.benlu.composeform.components
22
3- import android.content.res.Configuration.UI_MODE_NIGHT_NO
43import androidx.compose.foundation.interaction.MutableInteractionSource
54import androidx.compose.foundation.layout.Column
65import androidx.compose.foundation.layout.fillMaxWidth
76import androidx.compose.foundation.layout.padding
87import androidx.compose.foundation.text.KeyboardActions
98import androidx.compose.foundation.text.KeyboardOptions
10- import androidx.compose.material.*
9+ import androidx.compose.material.Icon
10+ import androidx.compose.material.MaterialTheme
11+ import androidx.compose.material.OutlinedTextField
12+ import androidx.compose.material.Surface
13+ import androidx.compose.material.Text
14+ import androidx.compose.material.TextFieldDefaults
1115import androidx.compose.material.icons.Icons
1216import androidx.compose.material.icons.filled.KeyboardArrowDown
13- import androidx.compose.runtime.*
17+ import androidx.compose.runtime.Composable
18+ import androidx.compose.runtime.remember
1419import androidx.compose.ui.Modifier
15- import androidx.compose.ui.draw.drawBehind
1620import androidx.compose.ui.focus.FocusRequester
1721import androidx.compose.ui.focus.FocusState
1822import androidx.compose.ui.focus.focusRequester
1923import androidx.compose.ui.focus.onFocusChanged
20- import androidx.compose.ui.geometry.Offset
21- import androidx.compose.ui.graphics.Color
2224import androidx.compose.ui.text.TextStyle
2325import androidx.compose.ui.text.input.ImeAction
2426import androidx.compose.ui.text.input.KeyboardType
2527import androidx.compose.ui.text.input.VisualTransformation
28+ import androidx.compose.ui.text.style.TextOverflow
2629import androidx.compose.ui.tooling.preview.Preview
2730import androidx.compose.ui.unit.dp
2831
@@ -65,7 +68,13 @@ fun TextFieldComponent(
6568 enabled = isEnabled,
6669 colors = TextFieldDefaults .outlinedTextFieldColors(),
6770 isError = hasError,
68- label = { Text (label) },
71+ label = {
72+ Text (
73+ maxLines = 1 ,
74+ overflow = TextOverflow .Ellipsis ,
75+ text = label
76+ )
77+ },
6978 readOnly = isReadOnly,
7079 interactionSource = interactionSource ? : remember { MutableInteractionSource () },
7180 visualTransformation = visualTransformation,
@@ -81,7 +90,7 @@ fun TextFieldComponent(
8190 }
8291}
8392
84- @Preview(uiMode = UI_MODE_NIGHT_NO )
93+ @Preview
8594@Composable
8695fun FormTextFieldPreview () {
8796 Surface {
@@ -104,6 +113,16 @@ fun FormTextFieldPreview() {
104113 hasError = true ,
105114 errorText = mutableListOf (" Should not be empty." )
106115 )
116+ TextFieldComponent (
117+ modifier = Modifier .padding(bottom = 8 .dp),
118+ text = " " ,
119+ label = " My Label which is very very very long and should be ellipsized" ,
120+ onChange = {},
121+ keyBoardActions = KeyboardActions .Default ,
122+ isEnabled = true ,
123+ hasError = true ,
124+ errorText = mutableListOf (" Should not be empty." )
125+ )
107126 TextFieldComponent (
108127 modifier = Modifier .padding(bottom = 8 .dp),
109128 text = " My Picker" ,
0 commit comments