@@ -11,8 +11,7 @@ import androidx.compose.foundation.layout.fillMaxSize
1111import androidx.compose.foundation.layout.fillMaxWidth
1212import androidx.compose.foundation.layout.height
1313import 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
1615import androidx.compose.foundation.layout.size
1716import androidx.compose.foundation.layout.width
1817import androidx.compose.material.DismissDirection
@@ -38,6 +37,7 @@ import androidx.compose.ui.platform.LocalContext
3837import androidx.compose.ui.res.stringResource
3938import androidx.compose.ui.text.style.TextOverflow
4039import androidx.compose.ui.tooling.preview.Preview
40+ import androidx.compose.ui.unit.Dp
4141import androidx.compose.ui.unit.dp
4242import androidx.compose.ui.unit.sp
4343import arrow.core.getOrElse
@@ -50,7 +50,7 @@ import com.hoc.flowmvi.domain.model.LastName
5050import com.hoc.flowmvi.domain.model.User
5151import com.hoc.flowmvi.ui.theme.AppTheme
5252
53- private object UserItemRowDefaults {
53+ internal object UserItemRowDefaults {
5454 val ImageSize = 72 .dp
5555 val Padding = 8 .dp
5656 val DismissBackgroundColor = Color .Red .copy(alpha = 0.75f )
@@ -62,6 +62,9 @@ internal fun UserItemRow(
6262 item : UserItem ,
6363 onRemove : () -> Unit ,
6464 modifier : Modifier = Modifier ,
65+ imageSize : Dp = UserItemRowDefaults .ImageSize ,
66+ padding : Dp = UserItemRowDefaults .Padding ,
67+ dismissBackgroundColor : Color = UserItemRowDefaults .DismissBackgroundColor ,
6568) {
6669 val dismissState = rememberDismissState(
6770 confirmStateChange = { dismissValue ->
@@ -86,7 +89,7 @@ internal fun UserItemRow(
8689 Box (
8790 Modifier
8891 .fillMaxSize()
89- .background(UserItemRowDefaults . DismissBackgroundColor )
92+ .background(dismissBackgroundColor )
9093 .padding(horizontal = 20 .dp),
9194 contentAlignment = Alignment .CenterEnd
9295 ) {
@@ -104,11 +107,14 @@ internal fun UserItemRow(
104107 Row (
105108 modifier = modifier
106109 .background(MaterialTheme .colorScheme.background)
107- .padding(all = UserItemRowDefaults . Padding ),
110+ .padding(all = padding ),
108111 ) {
109- UserItemAvatar (item)
112+ UserItemAvatar (
113+ item = item,
114+ imageSize = imageSize,
115+ )
110116
111- Spacer (modifier = Modifier .width(UserItemRowDefaults . Padding ))
117+ Spacer (modifier = Modifier .width(padding ))
112118
113119 Column (
114120 modifier = Modifier
@@ -124,7 +130,7 @@ internal fun UserItemRow(
124130 overflow = TextOverflow .Ellipsis ,
125131 )
126132
127- Spacer (modifier = Modifier .height(UserItemRowDefaults . Padding ))
133+ Spacer (modifier = Modifier .height(padding ))
128134
129135 Text (
130136 modifier = Modifier .fillMaxWidth(),
@@ -149,11 +155,14 @@ internal fun UserItemRow(
149155}
150156
151157@Composable
152- private fun UserItemAvatar (item : UserItem ) {
158+ private fun UserItemAvatar (
159+ item : UserItem ,
160+ imageSize : Dp ,
161+ modifier : Modifier = Modifier ,
162+ ) {
153163 SubcomposeAsyncImage (
154- modifier = Modifier
155- .requiredWidth(UserItemRowDefaults .ImageSize )
156- .requiredHeight(UserItemRowDefaults .ImageSize ),
164+ modifier = modifier
165+ .requiredSize(imageSize),
157166 model = ImageRequest .Builder (LocalContext .current)
158167 .data(item.avatar)
159168 .crossfade(true )
0 commit comments