mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-10-31 16:22:49 +00:00
Add preview for messages view in selection mode
This commit is contained in:
+38
@@ -77,13 +77,16 @@ import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBan
|
|||||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerView
|
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerView
|
||||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerViewDefaults
|
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerViewDefaults
|
||||||
import io.element.android.features.messages.impl.timeline.FOCUS_ON_PINNED_EVENT_DEBOUNCE_DURATION_IN_MILLIS
|
import io.element.android.features.messages.impl.timeline.FOCUS_ON_PINNED_EVENT_DEBOUNCE_DURATION_IN_MILLIS
|
||||||
|
import io.element.android.features.messages.impl.timeline.SelectionAction
|
||||||
import io.element.android.features.messages.impl.timeline.SelectionState
|
import io.element.android.features.messages.impl.timeline.SelectionState
|
||||||
import io.element.android.features.messages.impl.timeline.TimelineEvent
|
import io.element.android.features.messages.impl.timeline.TimelineEvent
|
||||||
import io.element.android.features.messages.impl.timeline.TimelineView
|
import io.element.android.features.messages.impl.timeline.TimelineView
|
||||||
import io.element.android.features.messages.impl.timeline.aGroupedEvents
|
import io.element.android.features.messages.impl.timeline.aGroupedEvents
|
||||||
import io.element.android.features.messages.impl.timeline.aTimelineItemDaySeparator
|
import io.element.android.features.messages.impl.timeline.aTimelineItemDaySeparator
|
||||||
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
|
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
|
||||||
|
import io.element.android.features.messages.impl.timeline.aTimelineItemList
|
||||||
import io.element.android.features.messages.impl.timeline.aTimelineState
|
import io.element.android.features.messages.impl.timeline.aTimelineState
|
||||||
|
import io.element.android.features.messages.impl.timeline.canApplyTo
|
||||||
import io.element.android.features.messages.impl.timeline.components.CallMenuItem
|
import io.element.android.features.messages.impl.timeline.components.CallMenuItem
|
||||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionEvent
|
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionEvent
|
||||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvent
|
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvent
|
||||||
@@ -138,6 +141,7 @@ import io.element.android.libraries.textcomposer.model.TextEditorState
|
|||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
import io.element.android.wysiwyg.link.Link
|
import io.element.android.wysiwyg.link.Link
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
import kotlinx.collections.immutable.toPersistentSet
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import kotlin.time.Duration.Companion.milliseconds
|
import kotlin.time.Duration.Companion.milliseconds
|
||||||
|
|
||||||
@@ -756,6 +760,40 @@ internal fun MessagesViewPreview(@PreviewParameter(MessagesStatePreviewParam::cl
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreviewsDayNight
|
||||||
|
@Composable
|
||||||
|
internal fun MessagesViewSelectionModePreview() = ElementPreview {
|
||||||
|
val timelineItems = aTimelineItemList(aTimelineItemTextContent())
|
||||||
|
val selectedEventIds = timelineItems
|
||||||
|
.filterIsInstance<TimelineItem.Event>()
|
||||||
|
.filter { SelectionAction.Forward.canApplyTo(it) }
|
||||||
|
.take(2)
|
||||||
|
.mapNotNull { it.eventId }
|
||||||
|
.toPersistentSet()
|
||||||
|
MessagesView(
|
||||||
|
state = aMessagesState(
|
||||||
|
timelineState = aTimelineState(
|
||||||
|
timelineItems = timelineItems,
|
||||||
|
selectionState = SelectionState.Active(SelectionAction.Forward, selectedEventIds),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onBackClick = {},
|
||||||
|
onRoomDetailsClick = {},
|
||||||
|
onEventContentClick = { _, _ -> false },
|
||||||
|
onGalleryEventItemClick = { _, _, _ -> false },
|
||||||
|
onUserDataClick = {},
|
||||||
|
onLinkClick = { _, _ -> },
|
||||||
|
onSendLocationClick = {},
|
||||||
|
onCreatePollClick = {},
|
||||||
|
onJoinCallClick = {},
|
||||||
|
onViewAllPinnedMessagesClick = { },
|
||||||
|
forceJumpToBottomVisibility = true,
|
||||||
|
knockRequestsBannerView = {},
|
||||||
|
customReactionBottomSheet = {},
|
||||||
|
onThreadsListClick = {},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@Preview
|
@Preview
|
||||||
@Composable
|
@Composable
|
||||||
internal fun MessagesViewA11yPreview() = ElementPreview {
|
internal fun MessagesViewA11yPreview() = ElementPreview {
|
||||||
|
|||||||
Reference in New Issue
Block a user