Skip to content

Commit 7a13971

Browse files
committed
Add rich text for control items
1 parent 3614bca commit 7a13971

1 file changed

Lines changed: 18 additions & 14 deletions

File tree

core/src/main/java/com/orange/ouds/core/component/OudsControlItem.kt

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import androidx.compose.ui.res.painterResource
3939
import androidx.compose.ui.semantics.clearAndSetSemantics
4040
import androidx.compose.ui.semantics.error
4141
import androidx.compose.ui.semantics.semantics
42+
import androidx.compose.ui.text.AnnotatedString
4243
import androidx.compose.ui.unit.Dp
4344
import androidx.compose.ui.unit.dp
4445
import androidx.compose.ui.unit.max
@@ -51,6 +52,7 @@ import com.orange.ouds.core.theme.OudsTheme
5152
import com.orange.ouds.core.theme.value
5253
import com.orange.ouds.core.utilities.CheckedContent
5354
import com.orange.ouds.core.utilities.getPreviewEnumEntry
55+
import com.orange.ouds.foundation.extensions.orElse
5456
import com.orange.ouds.foundation.utilities.BasicPreviewParameterProvider
5557

5658
/**
@@ -173,7 +175,7 @@ internal fun OudsControlItem(
173175
}
174176
}
175177
if (error != null && error.message.isNotBlank()) {
176-
ErrorMessageText(text = error.message, edgeToEdge = edgeToEdge)
178+
ErrorMessageText(error = error, edgeToEdge = edgeToEdge)
177179
}
178180
}
179181
}
@@ -254,20 +256,22 @@ private fun LeadingTrailingBox(content: @Composable () -> Unit) {
254256
}
255257

256258
@Composable
257-
private fun ErrorMessageText(text: String, edgeToEdge: Boolean) {
259+
private fun ErrorMessageText(error: OudsError, edgeToEdge: Boolean) {
258260
with(OudsTheme.componentsTokens.controlItem) {
259-
Text(
260-
modifier = Modifier
261-
.fillMaxWidth()
262-
.padding(horizontal = contentHorizontalPadding(edgeToEdge = edgeToEdge))
263-
.padding(top = spacePaddingBlockTopErrorText.value)
264-
.clearAndSetSemantics {
265-
error(text)
266-
},
267-
text = text,
268-
style = OudsTheme.typography.label.default.medium,
269-
color = OudsTheme.colorScheme.content.status.negative
270-
)
261+
val modifier = Modifier
262+
.fillMaxWidth()
263+
.padding(horizontal = contentHorizontalPadding(edgeToEdge = edgeToEdge))
264+
.padding(top = spacePaddingBlockTopErrorText.value)
265+
.clearAndSetSemantics {
266+
error(error.message)
267+
}
268+
val text = error.annotatedMessage?.annotatedString.orElse { error.message }
269+
val style = OudsTheme.typography.label.default.medium
270+
val color = OudsTheme.colorScheme.content.status.negative
271+
when (text) {
272+
is AnnotatedString -> Text(modifier = modifier, text = text, style = style, color = color)
273+
is String -> Text(modifier = modifier, text = text, style = style, color = color)
274+
}
271275
}
272276
}
273277

0 commit comments

Comments
 (0)