From c1678f22e6e304aa9cf907b8a063bf396bba423a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 22 Apr 2026 12:21:20 +0200 Subject: [PATCH] Add more preview for MediaDetailsBottomSheetPreview --- .../impl/details/MediaDetailsBottomSheet.kt | 7 ++- .../MediaDetailsBottomSheetStateProvider.kt | 43 +++++++++++++++++++ .../mediaviewer/impl/details/Preview.kt | 15 ------- 3 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetStateProvider.kt diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt index 3c29bd9044..3450989c95 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons @@ -248,9 +249,11 @@ private fun SectionText( @PreviewsDayNight @Composable -internal fun MediaDetailsBottomSheetPreview() = ElementPreview { +internal fun MediaDetailsBottomSheetPreview( + @PreviewParameter(MediaDetailsBottomSheetStateProvider::class) state: MediaBottomSheetState.MediaDetailsBottomSheetState, +) = ElementPreview { MediaDetailsBottomSheet( - state = aMediaDetailsBottomSheetState(), + state = state, onViewInTimeline = {}, onShare = {}, onForward = {}, diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetStateProvider.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetStateProvider.kt new file mode 100644 index 0000000000..5da48a0838 --- /dev/null +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetStateProvider.kt @@ -0,0 +1,43 @@ +/* + * 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.mediaviewer.impl.details + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +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 +import io.element.android.libraries.mediaviewer.api.anImageMediaInfo + +open class MediaDetailsBottomSheetStateProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aMediaDetailsBottomSheetState(), + aMediaDetailsBottomSheetState( + canDelete = false, + ), + aMediaDetailsBottomSheetState( + mediaInfo = anApkMediaInfo(), + ), + ) +} + +fun aMediaDetailsBottomSheetState( + dateSentFull: String = "December 6, 2024 at 12:59", + canDelete: Boolean = true, + mediaInfo: MediaInfo = anImageMediaInfo( + senderName = "Alice", + dateSentFull = dateSentFull, + ), +): MediaBottomSheetState.MediaDetailsBottomSheetState { + return MediaBottomSheetState.MediaDetailsBottomSheetState( + eventId = EventId("\$eventId"), + canDelete = canDelete, + mediaInfo = mediaInfo, + thumbnailSource = null, + ) +} diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/Preview.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/Preview.kt index a152a32091..17138b4fa7 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/Preview.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/Preview.kt @@ -11,21 +11,6 @@ package io.element.android.libraries.mediaviewer.impl.details import io.element.android.libraries.matrix.api.core.EventId import io.element.android.libraries.mediaviewer.api.anImageMediaInfo -fun aMediaDetailsBottomSheetState( - dateSentFull: String = "December 6, 2024 at 12:59", - canDelete: Boolean = true, -): MediaBottomSheetState.MediaDetailsBottomSheetState { - return MediaBottomSheetState.MediaDetailsBottomSheetState( - eventId = EventId("\$eventId"), - canDelete = canDelete, - mediaInfo = anImageMediaInfo( - senderName = "Alice", - dateSentFull = dateSentFull, - ), - thumbnailSource = null, - ) -} - fun aMediaDeleteConfirmationState(): MediaBottomSheetState.MediaDeleteConfirmationState { return MediaBottomSheetState.MediaDeleteConfirmationState( eventId = EventId("\$eventId"),