Reduce number of Preview for Avatar.
It will cover more cases, and it will limit the risk of conflict on screenshot, which happen each time we touch AvatarSize.
This commit is contained in:
@@ -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),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user