refactor: merge text style in Text

This commit is contained in:
2024-01-16 17:32:31 +08:00
parent bd1fb7967a
commit b921cbaf8b

View File

@@ -34,7 +34,13 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.TextLayoutResult
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight
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.text.style.TextOverflow
import androidx.compose.ui.unit.TextUnit
import com.highcapable.betterandroid.compose.extension.ui.orNull import com.highcapable.betterandroid.compose.extension.ui.orNull
import com.highcapable.flexiui.ColorsDescriptor import com.highcapable.flexiui.ColorsDescriptor
import com.highcapable.flexiui.DefaultTypography import com.highcapable.flexiui.DefaultTypography
@@ -45,8 +51,16 @@ import com.highcapable.flexiui.toColor
* @see BasicText * @see BasicText
* @param text the text to be displayed. * @param text the text to be displayed.
* @param modifier the [Modifier] to be applied to this text. * @param modifier the [Modifier] to be applied to this text.
* @param color the color of the text. * @param color the color of the text, see [TextStyle.color].
* @param style the style of the text. * @param style the style of the text.
* @param fontSize the font size of the text, see [TextStyle.fontSize].
* @param fontStyle the font style of the text, see [TextStyle.fontStyle].
* @param fontWeight the font weight of the text, see [TextStyle.fontWeight].
* @param fontFamily the font family of the text, see [TextStyle.fontFamily].
* @param letterSpacing the letter spacing of the text, see [TextStyle.letterSpacing].
* @param textDecoration the text decoration of the text, see [TextStyle.textDecoration].
* @param textAlign the text alignment of the text, see [TextStyle.textAlign].
* @param lineHeight the line height of the text, see [TextStyle.lineHeight].
* @param singleLine whether the text should be displayed on a single line, default is false. * @param singleLine whether the text should be displayed on a single line, default is false.
* @param maxLines the maximum number of lines to display, when [singleLine] is false default is [Int.MAX_VALUE]. * @param maxLines the maximum number of lines to display, when [singleLine] is false default is [Int.MAX_VALUE].
* @param minLines the minimum number of lines to display, default is 1. * @param minLines the minimum number of lines to display, default is 1.
@@ -60,6 +74,14 @@ fun Text(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
color: Color = Color.Unspecified, color: Color = Color.Unspecified,
style: TextStyle? = null, style: TextStyle? = null,
fontSize: TextUnit = TextUnit.Unspecified,
fontStyle: FontStyle? = null,
fontWeight: FontWeight? = null,
fontFamily: FontFamily? = null,
letterSpacing: TextUnit = TextUnit.Unspecified,
textDecoration: TextDecoration? = null,
textAlign: TextAlign? = null,
lineHeight: TextUnit = TextUnit.Unspecified,
singleLine: Boolean = false, singleLine: Boolean = false,
maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE, maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE,
minLines: Int = 1, minLines: Int = 1,
@@ -72,6 +94,14 @@ fun Text(
modifier = modifier, modifier = modifier,
color = color, color = color,
style = style, style = style,
fontSize = fontSize,
fontStyle = fontStyle,
fontWeight = fontWeight,
fontFamily = fontFamily,
letterSpacing = letterSpacing,
textDecoration = textDecoration,
textAlign = textAlign,
lineHeight = lineHeight,
overflow = overflow, overflow = overflow,
softWrap = softWrap, softWrap = softWrap,
maxLines = maxLines, maxLines = maxLines,
@@ -86,8 +116,16 @@ fun Text(
* @see BasicText * @see BasicText
* @param text the text to be displayed. * @param text the text to be displayed.
* @param modifier the [Modifier] to be applied to this text. * @param modifier the [Modifier] to be applied to this text.
* @param color the color of the text. * @param color the color of the text, see [TextStyle.color].
* @param style the style of the text. * @param style the style of the text.
* @param fontSize the font size of the text, see [TextStyle.fontSize].
* @param fontStyle the font style of the text, see [TextStyle.fontStyle].
* @param fontWeight the font weight of the text, see [TextStyle.fontWeight].
* @param fontFamily the font family of the text, see [TextStyle.fontFamily].
* @param letterSpacing the letter spacing of the text, see [TextStyle.letterSpacing].
* @param textDecoration the text decoration of the text, see [TextStyle.textDecoration].
* @param textAlign the text alignment of the text, see [TextStyle.textAlign].
* @param lineHeight the line height of the text, see [TextStyle.lineHeight].
* @param singleLine whether the text should be displayed on a single line, default is false. * @param singleLine whether the text should be displayed on a single line, default is false.
* @param maxLines the maximum number of lines to display, when [singleLine] is false default is [Int.MAX_VALUE]. * @param maxLines the maximum number of lines to display, when [singleLine] is false default is [Int.MAX_VALUE].
* @param minLines the minimum number of lines to display, default is 1. * @param minLines the minimum number of lines to display, default is 1.
@@ -102,6 +140,14 @@ fun Text(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
color: Color = Color.Unspecified, color: Color = Color.Unspecified,
style: TextStyle? = null, style: TextStyle? = null,
fontSize: TextUnit = TextUnit.Unspecified,
fontStyle: FontStyle? = null,
fontWeight: FontWeight? = null,
fontFamily: FontFamily? = null,
letterSpacing: TextUnit = TextUnit.Unspecified,
textDecoration: TextDecoration? = null,
textAlign: TextAlign? = null,
lineHeight: TextUnit = TextUnit.Unspecified,
singleLine: Boolean = false, singleLine: Boolean = false,
maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE, maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE,
minLines: Int = 1, minLines: Int = 1,
@@ -115,7 +161,16 @@ fun Text(
BasicText( BasicText(
text = text, text = text,
modifier = modifier, modifier = modifier,
style = currentStyle.copy(color = currentColor), style = currentStyle.copy(color = currentColor).merge(
fontSize = fontSize,
fontStyle = fontStyle,
fontWeight = fontWeight,
fontFamily = fontFamily,
letterSpacing = letterSpacing,
textDecoration = textDecoration,
textAlign = textAlign,
lineHeight = lineHeight
),
onTextLayout = onTextLayout, onTextLayout = onTextLayout,
overflow = overflow, overflow = overflow,
softWrap = softWrap, softWrap = softWrap,