TP-38094 [Bug] DOB text overflow issue (#151)

This commit is contained in:
Aparna Vadlamani
2023-08-17 13:57:29 +05:30
committed by GitHub
parent c76438cae8
commit bb78cb2ce9
2 changed files with 26 additions and 1 deletions

View File

@@ -41,9 +41,12 @@ import isNotNullAndNotEmpty
import isNull
import orFalse
import orTrue
import orZero
import pxToDp
import setHeight
import setPadding
import setWidth
import spToPx
import splitStringIntoUnequalParts
import java.util.*
@@ -160,6 +163,11 @@ class MultiSectionTextFieldRenderer() : Renderer<MultiSectionTextFieldProperty>
?: defaultMaxCharList[index]
}
(0 until property.textFieldPropertyList.size).forEach { index ->
val fieldWidth = pxToDp(
spToPx(
property.textFieldPropertyList[index].textStyle.fontSize ?: 14
) * maxCharList[index]
).toInt() + property.textFieldPropertyList[index].padding?.start.orZero() + property.textFieldPropertyList[index].padding?.end.orZero()
var cursorPosition by remember { mutableStateOf(inputValues[index].value.text.length) }
BasicTextField(
value = inputValues[index].value,
@@ -206,7 +214,7 @@ class MultiSectionTextFieldRenderer() : Renderer<MultiSectionTextFieldProperty>
uiTronViewModel.handleActions(multiSectionTextFieldData?.onInputValueChangeAction)
},
modifier = Modifier
.setWidth(property.textFieldPropertyList[index].width)
.setWidth(fieldWidth.toString())
.setHeight(property.textFieldPropertyList[index].height)
.setPadding(property.textFieldPropertyList[index].padding)
.onKeyEvent { event ->

View File

@@ -28,10 +28,13 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.TileMode
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.constraintlayout.compose.ConstrainedLayoutReference
@@ -410,6 +413,20 @@ fun dpToPx(inpDp: Int): Float {
return (inpDp * Resources.getSystem().displayMetrics.density)
}
@Composable
fun pxToDp(px: Float): Float {
return with(LocalDensity.current) {
px.toDp().value
}
}
@Composable
fun spToPx(intSp: Int): Float {
return with(LocalDensity.current) {
intSp.sp.toPx()
}
}
fun Boolean?.orTrue() = this ?: true
fun Boolean?.orFalse() = this ?: false