Moves Following icon from crossfade to animatedVisibility.
This commit is contained in:
@@ -1115,7 +1115,12 @@ fun DisplayZapSplits(noteEvent: EventInterface, accountViewModel: AccountViewMod
|
|||||||
style = LocalTextStyle.current.copy(color = MaterialTheme.colorScheme.primary)
|
style = LocalTextStyle.current.copy(color = MaterialTheme.colorScheme.primary)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
UserPicture(userHex = it.lnAddressOrPubKeyHex, size = 25.dp, accountViewModel = accountViewModel, nav = nav)
|
UserPicture(
|
||||||
|
userHex = it.lnAddressOrPubKeyHex,
|
||||||
|
size = Size25dp,
|
||||||
|
accountViewModel = accountViewModel,
|
||||||
|
nav = nav
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.vitorpamplona.amethyst.ui.note
|
package com.vitorpamplona.amethyst.ui.note
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.animation.Crossfade
|
import androidx.compose.animation.Crossfade
|
||||||
|
import androidx.compose.animation.fadeIn
|
||||||
|
import androidx.compose.animation.fadeOut
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
@@ -117,7 +120,7 @@ fun DisplayBlankAuthor(size: Dp, modifier: Modifier = Modifier) {
|
|||||||
fun UserPicture(
|
fun UserPicture(
|
||||||
userHex: String,
|
userHex: String,
|
||||||
size: Dp,
|
size: Dp,
|
||||||
pictureModifier: Modifier = remember { Modifier },
|
pictureModifier: Modifier = Modifier,
|
||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
nav: (String) -> Unit
|
nav: (String) -> Unit
|
||||||
) {
|
) {
|
||||||
@@ -143,7 +146,7 @@ fun UserPicture(
|
|||||||
fun UserPicture(
|
fun UserPicture(
|
||||||
user: User,
|
user: User,
|
||||||
size: Dp,
|
size: Dp,
|
||||||
pictureModifier: Modifier = remember { Modifier },
|
pictureModifier: Modifier = Modifier,
|
||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
nav: (String) -> Unit
|
nav: (String) -> Unit
|
||||||
) {
|
) {
|
||||||
@@ -170,7 +173,7 @@ fun ClickableUserPicture(
|
|||||||
baseUser: User,
|
baseUser: User,
|
||||||
size: Dp,
|
size: Dp,
|
||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
modifier: Modifier = remember { Modifier },
|
modifier: Modifier = Modifier,
|
||||||
onClick: ((User) -> Unit)? = null,
|
onClick: ((User) -> Unit)? = null,
|
||||||
onLongClick: ((User) -> Unit)? = null
|
onLongClick: ((User) -> Unit)? = null
|
||||||
) {
|
) {
|
||||||
@@ -290,7 +293,7 @@ fun BaseUserPicture(
|
|||||||
baseUser: User,
|
baseUser: User,
|
||||||
size: Dp,
|
size: Dp,
|
||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
innerModifier: Modifier = remember { Modifier },
|
innerModifier: Modifier = Modifier,
|
||||||
outerModifier: Modifier = remember { Modifier.size(size) }
|
outerModifier: Modifier = remember { Modifier.size(size) }
|
||||||
) {
|
) {
|
||||||
Box(outerModifier, contentAlignment = Alignment.TopEnd) {
|
Box(outerModifier, contentAlignment = Alignment.TopEnd) {
|
||||||
@@ -348,7 +351,6 @@ fun PictureAndFollowingMark(
|
|||||||
contentScale = ContentScale.Crop,
|
contentScale = ContentScale.Crop,
|
||||||
loadProfilePicture = automaticallyShowProfilePicture
|
loadProfilePicture = automaticallyShowProfilePicture
|
||||||
)
|
)
|
||||||
|
|
||||||
val myIconSize by remember(size) {
|
val myIconSize by remember(size) {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
size.div(3.5f)
|
size.div(3.5f)
|
||||||
@@ -360,11 +362,13 @@ fun PictureAndFollowingMark(
|
|||||||
@Composable
|
@Composable
|
||||||
fun ObserveAndDisplayFollowingMark(userHex: String, iconSize: Dp, accountViewModel: AccountViewModel) {
|
fun ObserveAndDisplayFollowingMark(userHex: String, iconSize: Dp, accountViewModel: AccountViewModel) {
|
||||||
WatchUserFollows(userHex, accountViewModel) { newFollowingState ->
|
WatchUserFollows(userHex, accountViewModel) { newFollowingState ->
|
||||||
Crossfade(targetState = newFollowingState) { following ->
|
AnimatedVisibility(
|
||||||
if (following) {
|
visible = newFollowingState,
|
||||||
Box(contentAlignment = Alignment.TopEnd) {
|
enter = fadeIn(),
|
||||||
FollowingIcon(iconSize)
|
exit = fadeOut()
|
||||||
}
|
) {
|
||||||
|
Box(contentAlignment = Alignment.TopEnd) {
|
||||||
|
FollowingIcon(iconSize)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user