Skip to content

Commit 4ec0ae1

Browse files
committed
Update WooPosCard to be selectable
1 parent 3d41beb commit 4ec0ae1

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/common/composeui/component/WooPosCard.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import androidx.compose.ui.graphics.toArgb
2525
import androidx.compose.ui.input.pointer.pointerInput
2626
import androidx.compose.ui.platform.LocalDensity
2727
import androidx.compose.ui.semantics.isTraversalGroup
28+
import androidx.compose.ui.semantics.selected
2829
import androidx.compose.ui.semantics.semantics
2930
import androidx.compose.ui.text.style.TextAlign
3031
import androidx.compose.ui.unit.Density
@@ -48,9 +49,9 @@ fun WooPosCard(
4849
shape: Shape = MaterialTheme.shapes.medium,
4950
backgroundColor: Color = MaterialTheme.colorScheme.surfaceContainerLowest,
5051
contentColor: Color = contentColorFor(backgroundColor),
51-
border: BorderStroke? = null,
5252
elevation: WooPosElevation = WooPosElevation.Medium,
5353
shadowType: ShadowType = ShadowType.Normal,
54+
isSelected: Boolean = false,
5455
content: @Composable () -> Unit
5556
) {
5657
CompositionLocalProvider(
@@ -61,13 +62,21 @@ fun WooPosCard(
6162
.surface(
6263
shape = shape,
6364
backgroundColor = backgroundColor,
64-
border = border,
65+
border = if (isSelected) {
66+
BorderStroke(
67+
width = 2.dp,
68+
color = MaterialTheme.colorScheme.onSurface,
69+
)
70+
} else {
71+
null
72+
},
6573
elevation = elevation.value,
6674
shadowType = shadowType
6775
)
6876
.semantics(mergeDescendants = false) {
6977
isTraversalGroup = true
7078
}
79+
.semantics { selected = isSelected }
7180
.pointerInput(Unit) {},
7281
propagateMinConstraints = true
7382
) {

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/orders/WooPosOrdersScreen.kt

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.woocommerce.android.ui.woopos.orders
22

33
import androidx.activity.compose.BackHandler
44
import androidx.compose.foundation.background
5-
import androidx.compose.foundation.border
65
import androidx.compose.foundation.clickable
76
import androidx.compose.foundation.layout.Arrangement
87
import androidx.compose.foundation.layout.Box
@@ -38,12 +37,8 @@ import androidx.compose.runtime.remember
3837
import androidx.compose.runtime.snapshotFlow
3938
import androidx.compose.ui.Alignment
4039
import androidx.compose.ui.Modifier
41-
import androidx.compose.ui.draw.clip
42-
import androidx.compose.ui.graphics.Color
4340
import androidx.compose.ui.platform.LocalContext
4441
import androidx.compose.ui.res.stringResource
45-
import androidx.compose.ui.semantics.selected
46-
import androidx.compose.ui.semantics.semantics
4742
import androidx.compose.ui.text.font.FontWeight
4843
import androidx.compose.ui.text.style.TextOverflow
4944
import androidx.compose.ui.unit.dp
@@ -369,25 +364,12 @@ private fun LoadedOrdersList(
369364
backgroundColor = MaterialTheme.colorScheme.surfaceContainerLowest,
370365
elevation = WooPosElevation.Medium,
371366
shadowType = ShadowType.Soft,
367+
isSelected = item.isSelected,
372368
) {
373369
Row(
374370
modifier = Modifier
375371
.fillMaxWidth()
376-
.clip(MaterialTheme.shapes.medium)
377-
.background(MaterialTheme.colorScheme.surfaceContainerLowest)
378-
.then(
379-
if (item.isSelected) {
380-
Modifier.border(
381-
width = 2.dp,
382-
color = Color.Black,
383-
shape = MaterialTheme.shapes.medium
384-
)
385-
} else {
386-
Modifier
387-
}
388-
)
389372
.clickable { onOrderSelected(item.id) }
390-
.semantics { selected = item.isSelected }
391373
.padding(WooPosSpacing.Medium.value),
392374
verticalAlignment = Alignment.Top
393375
) {

0 commit comments

Comments
 (0)