src: use IconToggleButton and add crossfade animation

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
Aditya Wasan 2021-01-31 17:23:26 +05:30
parent a5538ece8e
commit 9c4c0b1e56
No known key found for this signature in database
GPG key ID: 6D6DF3BF15DE79B5

View file

@ -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))
}
}
}
}
}
}