Improve fun VerificationUserProfileContent

This commit is contained in:
Benoit Marty 2025-09-29 16:08:07 +02:00
parent 873a43f589
commit 2dc078c431
2 changed files with 23 additions and 15 deletions

View file

@ -215,9 +215,7 @@ private fun ContentInitial(
.padding(top = 24.dp), .padding(top = 24.dp),
) { ) {
VerificationUserProfileContent( VerificationUserProfileContent(
userId = request.details.senderProfile.userId, user = request.details.senderProfile,
displayName = request.details.senderProfile.displayName,
avatarUrl = request.details.senderProfile.avatarUrl,
) )
} }
} }

View file

@ -24,7 +24,6 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.components.avatar.AvatarType import io.element.android.libraries.designsystem.components.avatar.AvatarType
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
@ -32,19 +31,20 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.getBestName
/** /**
* Ref: https://www.figma.com/design/lMrKOhS8BEb75GXVq7FnNI/ER-96--User-Verification-by-Emoji?node-id=116-52049 * Ref: https://www.figma.com/design/lMrKOhS8BEb75GXVq7FnNI/ER-96--User-Verification-by-Emoji?node-id=116-52049
*/ */
@Composable @Composable
fun VerificationUserProfileContent( fun VerificationUserProfileContent(
userId: UserId, user: MatrixUser,
displayName: String?,
avatarUrl: String?,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val avatarData = remember(userId, displayName, avatarUrl) { val avatarData = remember(user) {
AvatarData(id = userId.value, name = displayName, url = avatarUrl, size = AvatarSize.UserVerification) user.getAvatarData(AvatarSize.UserVerification)
} }
Row( Row(
modifier = modifier modifier = modifier
@ -60,10 +60,18 @@ fun VerificationUserProfileContent(
) )
Spacer(modifier = Modifier.width(12.dp)) Spacer(modifier = Modifier.width(12.dp))
Column(verticalArrangement = Arrangement.spacedBy(2.dp)) { Column(verticalArrangement = Arrangement.spacedBy(2.dp)) {
Text(text = displayName ?: userId.value, style = ElementTheme.typography.fontBodyLgMedium, color = ElementTheme.colors.textPrimary) Text(
text = user.getBestName(),
style = ElementTheme.typography.fontBodyLgMedium,
color = ElementTheme.colors.textPrimary,
)
if (displayName != null) { if (user.displayName.isNullOrEmpty().not()) {
Text(text = userId.value, style = ElementTheme.typography.fontBodyMdRegular, color = ElementTheme.colors.textSecondary) Text(
text = user.userId.value,
style = ElementTheme.typography.fontBodyMdRegular,
color = ElementTheme.colors.textSecondary,
)
} }
} }
} }
@ -75,8 +83,10 @@ internal fun VerificationUserProfileContentPreview() = ElementPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar drawableFallbackForImages = CommonDrawables.sample_avatar
) { ) {
VerificationUserProfileContent( VerificationUserProfileContent(
userId = UserId("@alice:example.com"), user = MatrixUser(
displayName = "Alice", userId = UserId("@alice:example.com"),
avatarUrl = "https://example.com/avatar.png", displayName = "Alice",
avatarUrl = "https://example.com/avatar.png",
)
) )
} }