Refining the layout of Author Pictures

This commit is contained in:
Vitor Pamplona
2023-11-05 11:27:15 -05:00
parent 3de52a6c0d
commit 6fa36255b2
@@ -287,31 +287,39 @@ fun BaseUserPicture(
innerModifier: Modifier = Modifier, innerModifier: Modifier = Modifier,
outerModifier: Modifier = remember { Modifier.size(size) } outerModifier: Modifier = remember { Modifier.size(size) }
) { ) {
val myIconSize by remember(size) {
derivedStateOf {
size.div(3.5f)
}
}
Box(outerModifier, contentAlignment = Alignment.TopEnd) { Box(outerModifier, contentAlignment = Alignment.TopEnd) {
InnerBaseUserPicture(baseUser, size, accountViewModel, innerModifier) LoadUserProfilePicture(baseUser) { userProfilePicture ->
InnerUserPicture(
userHex = baseUser.pubkeyHex,
userPicture = userProfilePicture,
size = size,
modifier = innerModifier,
accountViewModel = accountViewModel
)
}
ObserveAndDisplayFollowingMark(baseUser.pubkeyHex, myIconSize, accountViewModel)
} }
} }
@Composable @Composable
fun InnerBaseUserPicture( fun LoadUserProfilePicture(
baseUser: User, baseUser: User,
size: Dp, innerContent: @Composable (String?) -> Unit
accountViewModel: AccountViewModel,
modifier: Modifier
) { ) {
val userProfile by baseUser.live().profilePictureChanges.observeAsState(baseUser.profilePicture()) val userProfile by baseUser.live().profilePictureChanges.observeAsState(baseUser.profilePicture())
PictureAndFollowingMark( innerContent(userProfile)
userHex = baseUser.pubkeyHex,
userPicture = userProfile,
size = size,
modifier = modifier,
accountViewModel = accountViewModel
)
} }
@Composable @Composable
fun PictureAndFollowingMark( fun InnerUserPicture(
userHex: String, userHex: String,
userPicture: String?, userPicture: String?,
size: Dp, size: Dp,
@@ -338,12 +346,6 @@ fun PictureAndFollowingMark(
contentScale = ContentScale.Crop, contentScale = ContentScale.Crop,
loadProfilePicture = automaticallyShowProfilePicture loadProfilePicture = automaticallyShowProfilePicture
) )
val myIconSize by remember(size) {
derivedStateOf {
size.div(3.5f)
}
}
ObserveAndDisplayFollowingMark(userHex, myIconSize, accountViewModel)
} }
@Composable @Composable
@@ -354,9 +356,7 @@ fun ObserveAndDisplayFollowingMark(userHex: String, iconSize: Dp, accountViewMod
enter = remember { fadeIn() }, enter = remember { fadeIn() },
exit = remember { fadeOut() } exit = remember { fadeOut() }
) { ) {
Box(contentAlignment = Alignment.TopEnd) { FollowingIcon(iconSize)
FollowingIcon(iconSize)
}
} }
} }
} }