mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Migrate EmojiPickerPresenter to assisted-factory pattern with EmptyGetRecentEmojis
This commit is contained in:
-2
@@ -37,7 +37,6 @@ fun CustomReactionBottomSheet(
|
||||
CustomReactionState.Target.None,
|
||||
is CustomReactionState.Target.Loading -> Unit
|
||||
is CustomReactionState.Target.Success -> {
|
||||
|
||||
fun onEmojiSelectedDismiss(emoji: Emoji) {
|
||||
sheetState.hide(coroutineScope) {
|
||||
state.eventSink(CustomReactionEvent.DismissCustomReactionSheet)
|
||||
@@ -49,7 +48,6 @@ fun CustomReactionBottomSheet(
|
||||
state.eventSink(CustomReactionEvent.DismissCustomReactionSheet)
|
||||
}
|
||||
|
||||
|
||||
ModalBottomSheet(
|
||||
onDismissRequest = ::onDismiss,
|
||||
sheetState = sheetState,
|
||||
|
||||
+4
-1
@@ -17,12 +17,15 @@ import dev.zacsweers.metro.Inject
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.emoji.api.picker.EmojiPickerPresenter
|
||||
import io.element.android.libraries.emoji.api.recentemojis.GetRecentEmojis
|
||||
import kotlinx.collections.immutable.toImmutableSet
|
||||
|
||||
@Inject
|
||||
class CustomReactionPresenter(
|
||||
private val emojiPickerPresenter: EmojiPickerPresenter,
|
||||
emojiPickerPresenterFactory: EmojiPickerPresenter.Factory,
|
||||
getRecentEmojis: GetRecentEmojis,
|
||||
) : Presenter<CustomReactionState> {
|
||||
private val emojiPickerPresenter = emojiPickerPresenterFactory.create(getRecentEmojis)
|
||||
@Composable
|
||||
override fun present(): CustomReactionState {
|
||||
var internalTarget by remember { mutableStateOf<InternalTarget>(InternalTarget.None) }
|
||||
|
||||
+4
-5
@@ -11,6 +11,8 @@ package io.element.android.features.messages.impl.timeline.components.customreac
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemReactions
|
||||
import io.element.android.libraries.emoji.api.picker.EmojiPickerPresenter
|
||||
import io.element.android.libraries.emoji.api.recentemojis.EmptyGetRecentEmojis
|
||||
import io.element.android.libraries.emoji.impl.picker.anEmojiPickerState
|
||||
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||
import io.element.android.tests.testutils.WarmUpRule
|
||||
@@ -24,7 +26,8 @@ class CustomReactionPresenterTest {
|
||||
val warmUpRule = WarmUpRule()
|
||||
|
||||
private val presenter = CustomReactionPresenter(
|
||||
emojiPickerPresenter = { anEmojiPickerState() },
|
||||
emojiPickerPresenterFactory = EmojiPickerPresenter.Factory { EmojiPickerPresenter { anEmojiPickerState() } },
|
||||
getRecentEmojis = EmptyGetRecentEmojis,
|
||||
)
|
||||
|
||||
@Test
|
||||
@@ -36,8 +39,6 @@ class CustomReactionPresenterTest {
|
||||
|
||||
initialState.eventSink(CustomReactionEvent.ShowCustomReactionSheet(event))
|
||||
|
||||
assertThat(awaitItem().target).isEqualTo(CustomReactionState.Target.Loading(event))
|
||||
|
||||
val eventId = (awaitItem().target as? CustomReactionState.Target.Success)?.event?.eventId
|
||||
assertThat(eventId).isEqualTo(AN_EVENT_ID)
|
||||
|
||||
@@ -57,8 +58,6 @@ class CustomReactionPresenterTest {
|
||||
val key = reactions.reactions.first().key
|
||||
initialState.eventSink(CustomReactionEvent.ShowCustomReactionSheet(event))
|
||||
|
||||
assertThat(awaitItem().target).isEqualTo(CustomReactionState.Target.Loading(event))
|
||||
|
||||
val stateWithSelectedEmojis = awaitItem()
|
||||
val eventId = (stateWithSelectedEmojis.target as? CustomReactionState.Target.Success)?.event?.eventId
|
||||
assertThat(eventId).isEqualTo(AN_EVENT_ID)
|
||||
|
||||
Reference in New Issue
Block a user