Updated on 2026-08-14

This commit is contained in:
Tangem 2024-05-27 20:07:15 +05:00
parent ba5a439b56
commit e6720c0c98
18 changed files with 296 additions and 111 deletions

View file

@ -2,8 +2,8 @@ package com.tangem.core.ui.components.atoms.text
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.LocalTextStyle
import androidx.compose.material.Text
import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@ -12,21 +12,18 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.SubcomposeLayout
import androidx.compose.ui.text.TextLayoutResult
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.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.TextUnit
import com.tangem.core.ui.res.TangemTheme
sealed class TextEllipsis {
object Middle : TextEllipsis()
data object Middle : TextEllipsis()
object End : TextEllipsis()
@ -49,14 +46,9 @@ fun EllipsisText(
text: String,
modifier: Modifier = Modifier,
color: Color = Color.Unspecified,
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,
softWrap: Boolean = true,
onTextLayout: (TextLayoutResult) -> Unit = {},
style: TextStyle = LocalTextStyle.current,
@ -82,18 +74,14 @@ fun EllipsisText(
Text(
text = layoutText,
color = color,
fontSize = fontSize,
style = style,
fontStyle = fontStyle,
fontWeight = fontWeight,
fontFamily = fontFamily,
letterSpacing = letterSpacing,
textDecoration = textDecoration,
textAlign = textAlign,
lineHeight = lineHeight,
softWrap = softWrap,
maxLines = 1,
onTextLayout = { textLayoutResultState.value = it },
style = style,
modifier = modifier,
)
}.first().measure(Constraints())
// to allow smart cast
@ -150,14 +138,8 @@ fun EllipsisText(
Text(
text = finalText,
color = color,
fontSize = fontSize,
fontStyle = fontStyle,
fontWeight = fontWeight,
fontFamily = fontFamily,
letterSpacing = letterSpacing,
textDecoration = textDecoration,
textAlign = textAlign,
lineHeight = lineHeight,
softWrap = softWrap,
onTextLayout = onTextLayout,
style = style,

View file

@ -80,7 +80,10 @@ fun InputRowRecipient(
modifier = Modifier
.padding(top = TangemTheme.dimens.spacing8),
) {
Row {
Row(
verticalAlignment = CenterVertically,
modifier = Modifier.heightIn(TangemTheme.dimens.size40),
) {
InputIcon(
isLoading = isLoading,
value = value,

View file

@ -51,7 +51,7 @@ fun PasteButton(isPasteButtonVisible: Boolean, onClick: (String) -> Unit, modifi
) {
Text(
text = stringResource(R.string.common_paste),
style = TangemTheme.typography.button,
style = TangemTheme.typography.caption1,
color = TangemTheme.colors.text.primary2,
modifier = Modifier
.background(
@ -59,8 +59,8 @@ fun PasteButton(isPasteButtonVisible: Boolean, onClick: (String) -> Unit, modifi
shape = TangemTheme.shapes.roundedCornersXMedium,
)
.padding(
horizontal = TangemTheme.dimens.spacing10,
vertical = TangemTheme.dimens.spacing2,
horizontal = TangemTheme.dimens.spacing12,
vertical = TangemTheme.dimens.spacing4,
)
.clickable(
interactionSource = remember { MutableInteractionSource() },
@ -87,10 +87,10 @@ fun CrossIcon(onClick: (String) -> Unit, modifier: Modifier = Modifier) {
tint = TangemTheme.colors.icon.informative,
contentDescription = stringResource(R.string.common_close),
modifier = modifier
.size(TangemTheme.dimens.size20)
.size(TangemTheme.dimens.size24)
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(radius = TangemTheme.dimens.radius10),
indication = rememberRipple(radius = TangemTheme.dimens.radius12),
onClick = { onClick("") },
),
)

View file

@ -14,6 +14,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import com.tangem.core.ui.R
@ -34,6 +35,7 @@ fun SelectorRowItem(
ellipsizeOffset: Int? = null,
isSelected: Boolean = false,
showDivider: Boolean = true,
showSelectedAppearance: Boolean = true,
onSelect: (() -> Unit)? = null,
) {
val iconTint by animateColorAsState(
@ -44,7 +46,11 @@ fun SelectorRowItem(
},
label = "Selector icon tint change",
)
val textStyle = if (isSelected && showSelectedAppearance) {
TangemTheme.typography.subtitle2
} else {
TangemTheme.typography.body2
}
Box(
modifier = modifier
.fillMaxWidth()
@ -69,7 +75,7 @@ fun SelectorRowItem(
)
Text(
text = stringResource(titleRes),
style = TangemTheme.typography.body2,
style = textStyle,
color = TangemTheme.colors.text.primary1,
modifier = Modifier.padding(start = TangemTheme.dimens.spacing8),
)
@ -78,6 +84,7 @@ fun SelectorRowItem(
preDot = preDot,
postDot = postDot,
ellipsizeOffset = ellipsizeOffset,
textStyle = textStyle,
)
}
}
@ -98,6 +105,7 @@ fun SelectorRowItem(
private fun RowScope.SelectorValueContent(
preDot: TextReference,
postDot: TextReference?,
textStyle: TextStyle,
ellipsizeOffset: Int? = null,
) {
val ellipsis = if (ellipsizeOffset == null) {
@ -107,7 +115,7 @@ private fun RowScope.SelectorValueContent(
}
EllipsisText(
text = preDot.resolveReference(),
style = TangemTheme.typography.body2,
style = textStyle,
color = TangemTheme.colors.text.primary1,
textAlign = TextAlign.End,
ellipsis = ellipsis,

View file

@ -36,7 +36,6 @@ fun TransactionDoneTitle(@StringRes titleRes: Int, date: Long, modifier: Modifie
painter = painterResource(id = R.drawable.ic_empty_in_process_64),
contentDescription = null,
modifier = Modifier
.padding(top = TangemTheme.dimens.spacing8)
.size(TangemTheme.dimens.size64),
)
Text(