@@ -39,6 +39,7 @@ import androidx.compose.ui.res.painterResource
3939import androidx.compose.ui.semantics.clearAndSetSemantics
4040import androidx.compose.ui.semantics.error
4141import androidx.compose.ui.semantics.semantics
42+ import androidx.compose.ui.text.AnnotatedString
4243import androidx.compose.ui.unit.Dp
4344import androidx.compose.ui.unit.dp
4445import androidx.compose.ui.unit.max
@@ -51,6 +52,7 @@ import com.orange.ouds.core.theme.OudsTheme
5152import com.orange.ouds.core.theme.value
5253import com.orange.ouds.core.utilities.CheckedContent
5354import com.orange.ouds.core.utilities.getPreviewEnumEntry
55+ import com.orange.ouds.foundation.extensions.orElse
5456import 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