Create PreviewData with sample of UGC used for preview.
Fix preview issue where username was used for room/avatar name.
This commit is contained in:
parent
6ef9315468
commit
2a694f6dfd
31 changed files with 214 additions and 110 deletions
|
|
@ -8,10 +8,12 @@
|
|||
|
||||
package io.element.android.libraries.designsystem.components.avatar
|
||||
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
|
||||
fun anAvatarData(
|
||||
// Let's the id not start with a 'a'.
|
||||
// Let the id not start with a 'a'.
|
||||
id: String = "@id_of_alice:server.org",
|
||||
name: String? = "Alice",
|
||||
name: String? = USER_NAME_ALICE,
|
||||
url: String? = null,
|
||||
size: AvatarSize = AvatarSize.RoomListItem,
|
||||
) = AvatarData(
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright (c) 2026 Element Creations Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.designsystem.preview
|
||||
|
||||
const val USER_NAME_ALICE = "Alice"
|
||||
const val USER_NAME_BOB = "Bob"
|
||||
const val USER_NAME_CHARLIE = "Charlie"
|
||||
const val USER_NAME_CAROL = "Carol"
|
||||
const val USER_NAME_DAVID = "David"
|
||||
const val USER_NAME_EVE = "Eve"
|
||||
const val USER_NAME_JOHN_DOE = "John Doe"
|
||||
const val USER_NAME_JUSTIN = "Justin"
|
||||
const val USER_NAME_MALLORY = "Mallory"
|
||||
const val USER_NAME_SUSIE = "Susie"
|
||||
const val USER_NAME_VICTOR = "Victor"
|
||||
const val USER_NAME_WALTER = "Walter"
|
||||
|
||||
const val ROOM_NAME = "Room name"
|
||||
const val SPACE_NAME = "Space name"
|
||||
|
||||
const val LAST_MESSAGE = "Last message"
|
||||
|
|
@ -9,6 +9,17 @@
|
|||
package io.element.android.libraries.matrix.ui.components
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_CAROL
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_EVE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_JOHN_DOE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_JUSTIN
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_MALLORY
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_SUSIE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_VICTOR
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_WALTER
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
|
||||
|
|
@ -23,30 +34,30 @@ open class MatrixUserProvider : PreviewParameterProvider<MatrixUser> {
|
|||
open class MatrixUserWithAvatarProvider : PreviewParameterProvider<MatrixUser?> {
|
||||
override val values: Sequence<MatrixUser?>
|
||||
get() = sequenceOf(
|
||||
aMatrixUser(displayName = "John Doe"),
|
||||
aMatrixUser(displayName = "John Doe", avatarUrl = "anUrl"),
|
||||
aMatrixUser(displayName = USER_NAME_JOHN_DOE),
|
||||
aMatrixUser(displayName = USER_NAME_JOHN_DOE, avatarUrl = "anUrl"),
|
||||
)
|
||||
}
|
||||
|
||||
fun aMatrixUser(
|
||||
id: String = "@id_of_alice:server.org",
|
||||
displayName: String? = "Alice",
|
||||
id: String? = null,
|
||||
displayName: String? = USER_NAME_ALICE,
|
||||
avatarUrl: String? = null,
|
||||
) = MatrixUser(
|
||||
userId = UserId(id),
|
||||
userId = UserId(id ?: "@${displayName?.lowercase() ?: "id_of_alice"}:server.org"),
|
||||
displayName = displayName,
|
||||
avatarUrl = avatarUrl,
|
||||
)
|
||||
|
||||
fun aMatrixUserList() = listOf(
|
||||
aMatrixUser("@alice:server.org", "Alice"),
|
||||
aMatrixUser("@bob:server.org", "Bob"),
|
||||
aMatrixUser("@carol:server.org", "Carol"),
|
||||
aMatrixUser("@david:server.org", "David"),
|
||||
aMatrixUser("@eve:server.org", "Eve"),
|
||||
aMatrixUser("@justin:server.org", "Justin"),
|
||||
aMatrixUser("@mallory:server.org", "Mallory"),
|
||||
aMatrixUser("@susie:server.org", "Susie"),
|
||||
aMatrixUser("@victor:server.org", "Victor"),
|
||||
aMatrixUser("@walter:server.org", "Walter"),
|
||||
aMatrixUser(displayName = USER_NAME_ALICE),
|
||||
aMatrixUser(displayName = USER_NAME_BOB),
|
||||
aMatrixUser(displayName = USER_NAME_CAROL),
|
||||
aMatrixUser(displayName = USER_NAME_DAVID),
|
||||
aMatrixUser(displayName = USER_NAME_EVE),
|
||||
aMatrixUser(displayName = USER_NAME_JUSTIN),
|
||||
aMatrixUser(displayName = USER_NAME_MALLORY),
|
||||
aMatrixUser(displayName = USER_NAME_SUSIE),
|
||||
aMatrixUser(displayName = USER_NAME_VICTOR),
|
||||
aMatrixUser(displayName = USER_NAME_WALTER),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_JOHN_DOE
|
||||
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
|
||||
|
|
@ -58,7 +59,7 @@ internal fun SelectedUserRtlPreview() = CompositionLocalProvider(
|
|||
) {
|
||||
ElementPreview {
|
||||
SelectedUser(
|
||||
matrixUser = aMatrixUser(displayName = "John Doe"),
|
||||
matrixUser = aMatrixUser(displayName = USER_NAME_JOHN_DOE),
|
||||
canRemove = true,
|
||||
onUserRemove = {},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoomVisibility
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
|
|
@ -120,10 +124,10 @@ internal fun SpaceHeaderViewPreview() = ElementPreview {
|
|||
topicMaxLines = 2,
|
||||
visibility = SpaceRoomVisibility.Public,
|
||||
heroes = persistentListOf(
|
||||
aMatrixUser(id = "@1:d", displayName = "Alice", avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@2:d", displayName = "Bob"),
|
||||
aMatrixUser(id = "@3:d", displayName = "Charlie", avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@4:d", displayName = "Dave"),
|
||||
aMatrixUser(id = "@1:d", displayName = USER_NAME_ALICE, avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@2:d", displayName = USER_NAME_BOB),
|
||||
aMatrixUser(id = "@3:d", displayName = USER_NAME_CHARLIE, avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@4:d", displayName = USER_NAME_DAVID),
|
||||
),
|
||||
numberOfMembers = 999,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,10 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
|
|
@ -98,10 +102,10 @@ internal fun SpaceMembersViewPreview() = ElementPreview(
|
|||
) {
|
||||
SpaceMembersView(
|
||||
heroes = persistentListOf(
|
||||
aMatrixUser(id = "@1:d", displayName = "Alice", avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@2:d", displayName = "Bob"),
|
||||
aMatrixUser(id = "@3:d", displayName = "Charlie", avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@4:d", displayName = "Dave"),
|
||||
aMatrixUser(id = "@1:d", displayName = USER_NAME_ALICE, avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@2:d", displayName = USER_NAME_BOB),
|
||||
aMatrixUser(id = "@3:d", displayName = USER_NAME_CHARLIE, avatarUrl = "aUrl"),
|
||||
aMatrixUser(id = "@4:d", displayName = USER_NAME_DAVID),
|
||||
),
|
||||
numberOfMembers = 123,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
package io.element.android.libraries.matrix.ui.components
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||
import io.element.android.libraries.matrix.api.room.RoomType
|
||||
|
|
@ -28,10 +30,10 @@ class SpaceRoomProvider : PreviewParameterProvider<SpaceRoom> {
|
|||
state = CurrentUserMembership.LEFT,
|
||||
),
|
||||
aSpaceRoom(
|
||||
displayName = "Alice",
|
||||
displayName = SPACE_NAME,
|
||||
roomType = RoomType.Room,
|
||||
isDirect = true,
|
||||
heroes = listOf(aMatrixUser(displayName = "Alice")),
|
||||
heroes = listOf(aMatrixUser(displayName = USER_NAME_ALICE)),
|
||||
state = CurrentUserMembership.JOINED,
|
||||
numJoinedMembers = 2,
|
||||
),
|
||||
|
|
@ -69,9 +71,9 @@ class SpaceRoomProvider : PreviewParameterProvider<SpaceRoom> {
|
|||
state = CurrentUserMembership.INVITED,
|
||||
),
|
||||
aSpaceRoom(
|
||||
displayName = "Alice",
|
||||
displayName = SPACE_NAME,
|
||||
roomType = RoomType.Space,
|
||||
heroes = listOf(aMatrixUser(displayName = "Alice")),
|
||||
heroes = listOf(aMatrixUser(displayName = USER_NAME_ALICE)),
|
||||
state = CurrentUserMembership.JOINED,
|
||||
numJoinedMembers = 2,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
package io.element.android.libraries.matrix.ui.messages.reply
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||
|
|
@ -159,7 +160,7 @@ private fun aInReplyToDetails(
|
|||
)
|
||||
|
||||
fun aProfileDetailsReady(
|
||||
displayName: String? = "Sender",
|
||||
displayName: String? = USER_NAME_ALICE,
|
||||
displayNameAmbiguous: Boolean = false,
|
||||
avatarUrl: String? = null,
|
||||
) = ProfileDetails.Ready(
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
package io.element.android.libraries.mediaviewer.impl.details
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
||||
|
|
@ -26,7 +27,7 @@ open class MediaBottomSheetStateDeleteConfirmationProvider : PreviewParameterPro
|
|||
|
||||
fun aMediaBottomSheetStateDeleteConfirmation(
|
||||
mediaInfo: MediaInfo = anImageMediaInfo(
|
||||
senderName = "Alice",
|
||||
senderName = USER_NAME_ALICE,
|
||||
),
|
||||
thumbnailSource: MediaSource? = null,
|
||||
) = MediaBottomSheetState.DeleteConfirmation(
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
package io.element.android.libraries.mediaviewer.impl.details
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
||||
import io.element.android.libraries.mediaviewer.api.anApkMediaInfo
|
||||
|
|
@ -35,7 +36,7 @@ fun aMediaBottomSheetStateDetails(
|
|||
eventId: EventId? = EventId($$"$eventId"),
|
||||
canDelete: Boolean = true,
|
||||
mediaInfo: MediaInfo = anImageMediaInfo(
|
||||
senderName = "Alice",
|
||||
senderName = USER_NAME_ALICE,
|
||||
dateSentFull = "December 6, 2024 at 12:59",
|
||||
),
|
||||
) = MediaBottomSheetState.Details(
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ package io.element.android.libraries.mediaviewer.impl.gallery
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
||||
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||
import io.element.android.libraries.matrix.api.core.UniqueId
|
||||
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
|
||||
import io.element.android.libraries.mediaviewer.impl.details.aMediaBottomSheetStateDetails
|
||||
|
|
@ -112,7 +113,7 @@ open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryStat
|
|||
}
|
||||
|
||||
private fun aMediaGalleryState(
|
||||
roomName: String = "Room name",
|
||||
roomName: String = ROOM_NAME,
|
||||
mode: MediaGalleryMode = MediaGalleryMode.Images,
|
||||
groupedMediaItems: AsyncData<GroupedMediaItems> = AsyncData.Uninitialized,
|
||||
mediaBottomSheetState: MediaBottomSheetState = MediaBottomSheetState.Hidden,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import androidx.compose.runtime.mutableStateOf
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
||||
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
|
|
@ -179,7 +180,7 @@ open class MediaViewerStateProvider : PreviewParameterProvider<MediaViewerState>
|
|||
)
|
||||
),
|
||||
anImageMediaInfo(
|
||||
senderName = "Alice",
|
||||
senderName = USER_NAME_ALICE,
|
||||
dateSent = "21 NOV, 2024",
|
||||
caption = LONG_CAPTION,
|
||||
).let {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue