NTP-20431 | Added LineHeight style to TextStyle (#678)
This commit is contained in:
@@ -29,6 +29,8 @@ open class TextProperty(
|
||||
var valueTransformation: OutlinedTextFieldValueTransformation? = null,
|
||||
var textShadow: TextShadow? = null,
|
||||
var includeFontPadding: Boolean? = null,
|
||||
var lineHeightAlignment: String? = null,
|
||||
var lineHeightTrimStyle: String? = null,
|
||||
) : BaseProperty() {
|
||||
override fun copyNonNullFrom(property: BaseProperty?) {
|
||||
super.copyNonNullFrom(property)
|
||||
@@ -49,6 +51,8 @@ open class TextProperty(
|
||||
textProperty?.valueTransformation?.let { valueTransformation = it }
|
||||
textProperty?.textShadow?.let { textShadow = it }
|
||||
textProperty?.includeFontPadding?.let { includeFontPadding = it }
|
||||
textProperty?.lineHeightAlignment?.let { lineHeightAlignment = it }
|
||||
textProperty?.lineHeightTrimStyle?.let { lineHeightTrimStyle = it }
|
||||
}
|
||||
|
||||
data class TextShadow(
|
||||
|
||||
@@ -356,6 +356,20 @@ enum class ContentAlignmentType {
|
||||
BottomEnd,
|
||||
}
|
||||
|
||||
enum class LineHeightAlignmentType {
|
||||
Center,
|
||||
Top,
|
||||
Bottom,
|
||||
Proportional,
|
||||
}
|
||||
|
||||
enum class LineHeightTrimType {
|
||||
Both,
|
||||
None,
|
||||
FirstLineTop,
|
||||
LastLineBottom,
|
||||
}
|
||||
|
||||
enum class ContentScaleType {
|
||||
Crop,
|
||||
FillBounds,
|
||||
|
||||
@@ -20,6 +20,7 @@ import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.text.PlatformTextStyle
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.font.FontStyle
|
||||
import androidx.compose.ui.text.style.LineHeightStyle
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
import androidx.compose.ui.unit.em
|
||||
import androidx.compose.ui.unit.sp
|
||||
@@ -41,6 +42,8 @@ import com.navi.uitron.utils.customClickable
|
||||
import com.navi.uitron.utils.customCombinedClick
|
||||
import com.navi.uitron.utils.customOffset
|
||||
import com.navi.uitron.utils.dpToPx
|
||||
import com.navi.uitron.utils.getLineHeightAlignment
|
||||
import com.navi.uitron.utils.getLineHeightTrimStyle
|
||||
import com.navi.uitron.utils.getText
|
||||
import com.navi.uitron.utils.getTextAlignment
|
||||
import com.navi.uitron.utils.getTextDecoration
|
||||
@@ -160,6 +163,11 @@ class TextRenderer : Renderer<TextProperty> {
|
||||
PlatformTextStyle(
|
||||
includeFontPadding = property.includeFontPadding.orTrue()
|
||||
),
|
||||
lineHeightStyle =
|
||||
LineHeightStyle(
|
||||
alignment = getLineHeightAlignment(property.lineHeightAlignment),
|
||||
trim = getLineHeightTrimStyle(property.lineHeightTrimStyle),
|
||||
),
|
||||
),
|
||||
modifier =
|
||||
if (UiTronSdkManager.isModifierBuilderEnabled()) {
|
||||
|
||||
@@ -76,6 +76,7 @@ import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.text.PlatformTextStyle
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.style.LineHeightStyle
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
@@ -120,6 +121,8 @@ import com.navi.uitron.model.ui.HorizontalArrangementType
|
||||
import com.navi.uitron.model.ui.InputTransformationType
|
||||
import com.navi.uitron.model.ui.InteractionType
|
||||
import com.navi.uitron.model.ui.LazyRowConstraints
|
||||
import com.navi.uitron.model.ui.LineHeightAlignmentType
|
||||
import com.navi.uitron.model.ui.LineHeightTrimType
|
||||
import com.navi.uitron.model.ui.Offset as UiTronOffset
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldKeyBoardOptions
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldTextStyle
|
||||
@@ -665,6 +668,26 @@ fun String?.toDoubleWithSafe(): Double {
|
||||
}
|
||||
}
|
||||
|
||||
fun getLineHeightAlignment(alignment: String?): LineHeightStyle.Alignment {
|
||||
return when (alignment) {
|
||||
LineHeightAlignmentType.Center.name -> LineHeightStyle.Alignment.Center
|
||||
LineHeightAlignmentType.Top.name -> LineHeightStyle.Alignment.Top
|
||||
LineHeightAlignmentType.Proportional.name -> LineHeightStyle.Alignment.Proportional
|
||||
LineHeightAlignmentType.Bottom.name -> LineHeightStyle.Alignment.Bottom
|
||||
else -> LineHeightStyle.Alignment.Center
|
||||
}
|
||||
}
|
||||
|
||||
fun getLineHeightTrimStyle(trimStyle: String?): LineHeightStyle.Trim {
|
||||
return when (trimStyle) {
|
||||
LineHeightTrimType.None.name -> LineHeightStyle.Trim.None
|
||||
LineHeightTrimType.Both.name -> LineHeightStyle.Trim.Both
|
||||
LineHeightTrimType.LastLineBottom.name -> LineHeightStyle.Trim.LastLineBottom
|
||||
LineHeightTrimType.FirstLineTop.name -> LineHeightStyle.Trim.FirstLineTop
|
||||
else -> LineHeightStyle.Trim.None
|
||||
}
|
||||
}
|
||||
|
||||
fun getTextAlignment(textAlignment: String?): TextAlign {
|
||||
return when (textAlignment) {
|
||||
TextAlign.Start.toString() -> TextAlign.Start
|
||||
|
||||
Reference in New Issue
Block a user