diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt index 03af3e13..02db7b8b 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt @@ -1,5 +1,6 @@ package dev.msfjarvis.lobsters.ui.posts +import androidx.compose.animation.Crossfade import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -10,9 +11,9 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.IconToggleButton import androidx.compose.material.Surface import androidx.compose.material.Text -import androidx.compose.material.ripple.rememberRipple import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -121,20 +122,23 @@ fun LobstersItem( start.linkTo(avatar.end) }, ) - IconResource( - resourceId = if (isSaved) R.drawable.ic_favorite_24px else R.drawable.ic_favorite_border_24px, + IconToggleButton( + checked = isSaved, + onCheckedChange = { onSaveButtonClick.invoke() }, modifier = Modifier - .padding(8.dp) - .clickable( - onClick = onSaveButtonClick, - indication = rememberRipple(), - ) .constrainAs(saveButton) { end.linkTo(parent.end) centerVerticallyTo(parent) - }, - tint = Color(0xFFD97373), - ) + } + ) { + Crossfade(current = isSaved) { + if (it) { + IconResource(resourceId = R.drawable.ic_favorite_24px, tint = Color(0xFFD97373)) + } else { + IconResource(resourceId = R.drawable.ic_favorite_border_24px, tint = Color(0xFFD97373)) + } + } + } } } }