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:
parent
dbc0c42e31
commit
e3d11fa0f9
2 changed files with 51 additions and 30 deletions
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue