lint
This commit is contained in:
parent
59d7947cc0
commit
3cf73cf536
5 changed files with 13 additions and 13 deletions
|
|
@ -16,9 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.messages.impl
|
package io.element.android.features.messages.impl
|
||||||
|
|
||||||
import androidx.compose.ui.platform.LocalContext
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.emojibasebindings.EmojibaseDatasource
|
|
||||||
import io.element.android.features.messages.impl.actionlist.anActionListState
|
import io.element.android.features.messages.impl.actionlist.anActionListState
|
||||||
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
||||||
import io.element.android.features.messages.impl.timeline.aTimelineItemList
|
import io.element.android.features.messages.impl.timeline.aTimelineItemList
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,9 @@ fun CustomReactionBottomSheet(
|
||||||
) {
|
) {
|
||||||
EmojiPicker(
|
EmojiPicker(
|
||||||
onEmojiSelected = ::onEmojiSelectedDismiss,
|
onEmojiSelected = ::onEmojiSelectedDismiss,
|
||||||
modifier = Modifier.fillMaxSize(),
|
|
||||||
emojiProvider = emojiProvider,
|
emojiProvider = emojiProvider,
|
||||||
selectedEmojis = state.selectedEmoji,
|
selectedEmojis = state.selectedEmoji,
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,6 @@ package io.element.android.features.messages.impl.timeline.components.customreac
|
||||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
|
|
||||||
sealed interface CustomReactionEvents {
|
sealed interface CustomReactionEvents {
|
||||||
data class ShowCustomReactionSheet(val event: TimelineItem.Event?) : CustomReactionEvents
|
data class ShowCustomReactionSheet(val event: TimelineItem.Event) : CustomReactionEvents
|
||||||
object DismissCustomReactionSheet : CustomReactionEvents
|
object DismissCustomReactionSheet : CustomReactionEvents
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,8 @@ import io.element.android.emojibasebindings.EmojibaseDatasource
|
||||||
import io.element.android.emojibasebindings.EmojibaseStore
|
import io.element.android.emojibasebindings.EmojibaseStore
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import kotlinx.collections.immutable.toImmutableSet
|
import kotlinx.collections.immutable.toImmutableSet
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
@ -59,11 +57,16 @@ class CustomReactionPresenter @Inject constructor() : Presenter<CustomReactionSt
|
||||||
|
|
||||||
fun handleEvents(event: CustomReactionEvents) {
|
fun handleEvents(event: CustomReactionEvents) {
|
||||||
when (event) {
|
when (event) {
|
||||||
is CustomReactionEvents.ShowCustomReactionSheet -> handleShowCustomReactionSheet(event)
|
is CustomReactionEvents.ShowCustomReactionSheet -> handleShowCustomReactionSheet(event.event)
|
||||||
is CustomReactionEvents.DismissCustomReactionSheet -> handleDismissCustomReactionSheet()
|
is CustomReactionEvents.DismissCustomReactionSheet -> handleDismissCustomReactionSheet()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val selectedEmoji = selectedEvent?.reactionsState?.reactions?.mapNotNull { if(it.isHighlighted) it.key else null }.orEmpty().toImmutableSet()
|
val selectedEmoji = selectedEvent?.reactionsState?.reactions?.mapNotNull { if(it.isHighlighted) it.key else null }.orEmpty().toImmutableSet()
|
||||||
return CustomReactionState(selectedEventId = selectedEvent?.eventId, emojiProvider = emojiState, selectedEmoji = selectedEmoji, eventSink = ::handleEvents)
|
return CustomReactionState(
|
||||||
|
selectedEventId = selectedEvent?.eventId,
|
||||||
|
emojiProvider = emojiState,
|
||||||
|
selectedEmoji = selectedEmoji,
|
||||||
|
eventSink = ::handleEvents
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,13 +63,13 @@ import kotlinx.coroutines.launch
|
||||||
@Composable
|
@Composable
|
||||||
fun EmojiPicker(
|
fun EmojiPicker(
|
||||||
onEmojiSelected: (Emoji) -> Unit,
|
onEmojiSelected: (Emoji) -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
|
||||||
emojiProvider: EmojibaseStore,
|
emojiProvider: EmojibaseStore,
|
||||||
selectedEmojis: ImmutableSet<String>,
|
selectedEmojis: ImmutableSet<String>,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val coroutineScope = rememberCoroutineScope()
|
val coroutineScope = rememberCoroutineScope()
|
||||||
val categories = remember { emojiProvider.categories }
|
val categories = remember { emojiProvider.categories }
|
||||||
val pagerState = rememberPagerState(pageCount = { emojiProvider.categories.size })
|
val pagerState = rememberPagerState(pageCount = { EmojibaseCategory.values().size })
|
||||||
Column(modifier) {
|
Column(modifier) {
|
||||||
TabRow(
|
TabRow(
|
||||||
selectedTabIndex = pagerState.currentPage,
|
selectedTabIndex = pagerState.currentPage,
|
||||||
|
|
@ -91,7 +91,6 @@ fun EmojiPicker(
|
||||||
}
|
}
|
||||||
|
|
||||||
HorizontalPager(
|
HorizontalPager(
|
||||||
pageCount = EmojibaseCategory.values().size,
|
|
||||||
state = pagerState,
|
state = pagerState,
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
) { index ->
|
) { index ->
|
||||||
|
|
@ -150,8 +149,8 @@ internal fun EmojiPickerDarkPreview() {
|
||||||
private fun ContentToPreview() {
|
private fun ContentToPreview() {
|
||||||
EmojiPicker(
|
EmojiPicker(
|
||||||
onEmojiSelected = {},
|
onEmojiSelected = {},
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
emojiProvider = EmojibaseDatasource().load(LocalContext.current),
|
emojiProvider = EmojibaseDatasource().load(LocalContext.current),
|
||||||
selectedEmojis = persistentSetOf("😀", "😄", "😃")
|
selectedEmojis = persistentSetOf("😀", "😄", "😃"),
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue