diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/user/UserPreferences.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/user/UserPreferences.kt index f068e71f3b..34e0137137 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/user/UserPreferences.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/user/UserPreferences.kt @@ -20,9 +20,14 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.runtime.Composable 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 io.element.android.libraries.architecture.Async +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.matrix.ui.components.MatrixUserHeader +import io.element.android.libraries.matrix.ui.components.MatrixUserWithNullProvider import io.element.android.libraries.matrix.ui.model.MatrixUser @Composable @@ -38,3 +43,22 @@ fun UserPreferences( ) } } + +@Preview +@Composable +internal fun UserPreferencesLightPreview(@PreviewParameter(MatrixUserWithNullProvider::class) matrixUser: MatrixUser?) = + ElementPreviewLight { ContentToPreview(matrixUser) } + +@Preview +@Composable +internal fun UserPreferencesDarkPreview(@PreviewParameter(MatrixUserWithNullProvider::class) matrixUser: MatrixUser?) = + ElementPreviewDark { ContentToPreview(matrixUser) } + +@Composable +private fun ContentToPreview(matrixUser: MatrixUser?) { + if (matrixUser == null) { + UserPreferences(Async.Uninitialized) + } else { + UserPreferences(Async.Success(matrixUser)) + } +} diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt index 53a5e7a16a..9112a548a6 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt @@ -25,8 +25,7 @@ open class MatrixUserProvider : PreviewParameterProvider { override val values: Sequence get() = sequenceOf( aMatrixUser(), - MatrixUser( - id = UserId("@id_of_alice:server.org"), + aMatrixUser().copy( username = null, avatarData = anAvatarData().copy(name = null) ), @@ -38,3 +37,15 @@ fun aMatrixUser() = MatrixUser( username = "Alice", avatarData = anAvatarData() ) + +open class MatrixUserWithNullProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aMatrixUser(), + aMatrixUser().copy( + username = null, + avatarData = anAvatarData().copy(name = null) + ), + null, + ) +}