Merge pull request #5495 from element-hq/feature/bma/removeAvatarPreviews

Reduce number of Previews for Avatar.
This commit is contained in:
Benoit Marty
2025-10-09 12:01:08 +02:00
committed by GitHub
123 changed files with 54 additions and 390 deletions

View File

@@ -8,12 +8,13 @@
package io.element.android.libraries.designsystem.components.avatar
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.components.avatar.internal.RoomAvatar
@@ -21,8 +22,8 @@ import io.element.android.libraries.designsystem.components.avatar.internal.Spac
import io.element.android.libraries.designsystem.components.avatar.internal.UserAvatar
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
import io.element.android.libraries.designsystem.preview.PreviewGroup
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import kotlinx.collections.immutable.persistentListOf
@Composable
fun Avatar(
@@ -64,18 +65,54 @@ fun Avatar(
@Preview(group = PreviewGroup.Avatars)
@Composable
internal fun AvatarPreview(@PreviewParameter(AvatarDataProvider::class) avatarData: AvatarData) =
ElementThemedPreview(
drawableFallbackForImages = CommonDrawables.sample_avatar,
internal fun AvatarPreview() = ElementThemedPreview(
drawableFallbackForImages = CommonDrawables.sample_background,
) {
Column(
modifier = Modifier.padding(4.dp),
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(16.dp)
) {
Avatar(
avatarData = avatarData,
avatarType = AvatarType.User,
)
Text(text = avatarData.size.name + " " + avatarData.size.dp)
listOf(
anAvatarData(size = AvatarSize.UserListItem),
anAvatarData(size = AvatarSize.UserListItem, name = null),
anAvatarData(size = AvatarSize.UserListItem, url = "aUrl"),
).forEach { avatarData ->
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(4.dp)
) {
Avatar(
avatarData = avatarData,
avatarType = AvatarType.User,
)
Avatar(
avatarData = avatarData,
avatarType = AvatarType.Room(isTombstoned = false),
)
Avatar(
avatarData = avatarData,
avatarType = AvatarType.Room(
heroes = persistentListOf(
anAvatarData("@carol:server.org", "Carol", size = AvatarSize.UserListItem),
anAvatarData("@david:server.org", "David", size = AvatarSize.UserListItem),
anAvatarData("@eve:server.org", "Eve", size = AvatarSize.UserListItem),
anAvatarData("@justin:server.org", "Justin", size = AvatarSize.UserListItem),
)
)
)
Avatar(
avatarData = avatarData,
avatarType = AvatarType.Room(isTombstoned = true),
)
Avatar(
avatarData = avatarData,
avatarType = AvatarType.Space(isTombstoned = false),
)
Avatar(
avatarData = avatarData,
avatarType = AvatarType.Space(isTombstoned = true),
)
}
}
}
}

View File

@@ -7,22 +7,6 @@
package io.element.android.libraries.designsystem.components.avatar
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
open class AvatarDataProvider : PreviewParameterProvider<AvatarData> {
override val values: Sequence<AvatarData>
get() = AvatarSize.entries
.asSequence()
.map {
sequenceOf(
anAvatarData(size = it),
anAvatarData(size = it, name = null),
anAvatarData(size = it, url = "aUrl"),
)
}
.flatten()
}
fun anAvatarData(
// Let's the id not start with a 'a'.
id: String = "@id_of_alice:server.org",