Refining the layout of Author Pictures
This commit is contained in:
@@ -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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user