mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 17:57:03 +05:30
src: use IconToggleButton and add crossfade animation
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
parent
a5538ece8e
commit
9c4c0b1e56
1 changed files with 15 additions and 11 deletions
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue