@@ -11,8 +11,7 @@ import androidx.compose.foundation.layout.fillMaxSize
11
11
import androidx.compose.foundation.layout.fillMaxWidth
12
12
import androidx.compose.foundation.layout.height
13
13
import androidx.compose.foundation.layout.padding
14
- import androidx.compose.foundation.layout.requiredHeight
15
- import androidx.compose.foundation.layout.requiredWidth
14
+ import androidx.compose.foundation.layout.requiredSize
16
15
import androidx.compose.foundation.layout.size
17
16
import androidx.compose.foundation.layout.width
18
17
import androidx.compose.material.DismissDirection
@@ -38,6 +37,7 @@ import androidx.compose.ui.platform.LocalContext
38
37
import androidx.compose.ui.res.stringResource
39
38
import androidx.compose.ui.text.style.TextOverflow
40
39
import androidx.compose.ui.tooling.preview.Preview
40
+ import androidx.compose.ui.unit.Dp
41
41
import androidx.compose.ui.unit.dp
42
42
import androidx.compose.ui.unit.sp
43
43
import arrow.core.getOrElse
@@ -50,7 +50,7 @@ import com.hoc.flowmvi.domain.model.LastName
50
50
import com.hoc.flowmvi.domain.model.User
51
51
import com.hoc.flowmvi.ui.theme.AppTheme
52
52
53
- private object UserItemRowDefaults {
53
+ internal object UserItemRowDefaults {
54
54
val ImageSize = 72 .dp
55
55
val Padding = 8 .dp
56
56
val DismissBackgroundColor = Color .Red .copy(alpha = 0.75f )
@@ -62,6 +62,9 @@ internal fun UserItemRow(
62
62
item : UserItem ,
63
63
onRemove : () -> Unit ,
64
64
modifier : Modifier = Modifier ,
65
+ imageSize : Dp = UserItemRowDefaults .ImageSize ,
66
+ padding : Dp = UserItemRowDefaults .Padding ,
67
+ dismissBackgroundColor : Color = UserItemRowDefaults .DismissBackgroundColor ,
65
68
) {
66
69
val dismissState = rememberDismissState(
67
70
confirmStateChange = { dismissValue ->
@@ -86,7 +89,7 @@ internal fun UserItemRow(
86
89
Box (
87
90
Modifier
88
91
.fillMaxSize()
89
- .background(UserItemRowDefaults . DismissBackgroundColor )
92
+ .background(dismissBackgroundColor )
90
93
.padding(horizontal = 20 .dp),
91
94
contentAlignment = Alignment .CenterEnd
92
95
) {
@@ -104,11 +107,14 @@ internal fun UserItemRow(
104
107
Row (
105
108
modifier = modifier
106
109
.background(MaterialTheme .colorScheme.background)
107
- .padding(all = UserItemRowDefaults . Padding ),
110
+ .padding(all = padding ),
108
111
) {
109
- UserItemAvatar (item)
112
+ UserItemAvatar (
113
+ item = item,
114
+ imageSize = imageSize,
115
+ )
110
116
111
- Spacer (modifier = Modifier .width(UserItemRowDefaults . Padding ))
117
+ Spacer (modifier = Modifier .width(padding ))
112
118
113
119
Column (
114
120
modifier = Modifier
@@ -124,7 +130,7 @@ internal fun UserItemRow(
124
130
overflow = TextOverflow .Ellipsis ,
125
131
)
126
132
127
- Spacer (modifier = Modifier .height(UserItemRowDefaults . Padding ))
133
+ Spacer (modifier = Modifier .height(padding ))
128
134
129
135
Text (
130
136
modifier = Modifier .fillMaxWidth(),
@@ -149,11 +155,14 @@ internal fun UserItemRow(
149
155
}
150
156
151
157
@Composable
152
- private fun UserItemAvatar (item : UserItem ) {
158
+ private fun UserItemAvatar (
159
+ item : UserItem ,
160
+ imageSize : Dp ,
161
+ modifier : Modifier = Modifier ,
162
+ ) {
153
163
SubcomposeAsyncImage (
154
- modifier = Modifier
155
- .requiredWidth(UserItemRowDefaults .ImageSize )
156
- .requiredHeight(UserItemRowDefaults .ImageSize ),
164
+ modifier = modifier
165
+ .requiredSize(imageSize),
157
166
model = ImageRequest .Builder (LocalContext .current)
158
167
.data(item.avatar)
159
168
.crossfade(true )
0 commit comments