Skip to content

Commit 6135de6

Browse files
committed
Display an error icon in control items if in error
1 parent c13c65e commit 6135de6

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

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

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.heightIn
2323
import androidx.compose.foundation.layout.padding
2424
import androidx.compose.foundation.layout.size
2525
import androidx.compose.foundation.layout.widthIn
26+
import androidx.compose.material3.Icon
2627
import androidx.compose.material3.Text
2728
import androidx.compose.runtime.Composable
2829
import androidx.compose.ui.Alignment
@@ -31,6 +32,7 @@ import androidx.compose.ui.graphics.Color
3132
import androidx.compose.ui.graphics.ImageBitmap
3233
import androidx.compose.ui.graphics.painter.Painter
3334
import androidx.compose.ui.graphics.vector.ImageVector
35+
import androidx.compose.ui.res.painterResource
3436
import androidx.compose.ui.semantics.error
3537
import androidx.compose.ui.semantics.semantics
3638
import androidx.compose.ui.unit.dp
@@ -91,13 +93,17 @@ internal fun OudsControlItem(
9193
) {
9294
val controlItemTokens = OudsTheme.componentsTokens.controlItem
9395

94-
val itemIcon: (@Composable () -> Unit)? = icon?.let {
95-
{
96-
icon.Content(
97-
extraParameters = OudsControlItemIcon.ExtraParameters(
98-
tint = if (state == OudsControlItemState.Disabled) OudsTheme.colorScheme.content.disabled else OudsTheme.colorScheme.content.default
96+
val itemIcon: (@Composable () -> Unit)? = if (error != null) {
97+
{ errorIcon(state = state) }
98+
} else {
99+
icon?.let {
100+
{
101+
icon.Content(
102+
extraParameters = OudsControlItemIcon.ExtraParameters(
103+
tint = if (state == OudsControlItemState.Disabled) OudsTheme.colorScheme.content.disabled else OudsTheme.colorScheme.content.default
104+
)
99105
)
100-
)
106+
}
101107
}
102108
}
103109

@@ -269,6 +275,20 @@ private fun LeadingTrailingBox(content: @Composable () -> Unit) {
269275
}
270276
}
271277

278+
@Composable
279+
private fun errorIcon(state: OudsControlItemState) {
280+
with(OudsTheme.componentsTokens.controlItem) {
281+
Icon(
282+
modifier = Modifier
283+
.padding(spacePaddingInlineErrorIcon.value)
284+
.size(sizeErrorIcon.value),
285+
painter = painterResource(id = OudsTheme.drawableResources.alertImportant),
286+
contentDescription = null,
287+
tint = errorColor(state = state)
288+
)
289+
}
290+
}
291+
272292
@Composable
273293
private fun backgroundColor(state: OudsControlItemState): Color {
274294
return with(OudsTheme.componentsTokens.controlItem) {

0 commit comments

Comments
 (0)