Merge pull request #989 from vector-im/feature/bma/noEmojiForStateEvent
Prevent reaction on state events and deleted events
This commit is contained in:
@@ -28,6 +28,7 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRedactedContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.canBeCopied
|
||||
import io.element.android.features.messages.impl.timeline.model.event.canReact
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.core.meta.BuildMeta
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
@@ -48,7 +49,10 @@ class ActionListPresenter @Inject constructor(
|
||||
}
|
||||
|
||||
val displayEmojiReactions by remember {
|
||||
derivedStateOf { (target.value as? ActionListState.Target.Success)?.event?.isRemote == true }
|
||||
derivedStateOf {
|
||||
val event = (target.value as? ActionListState.Target.Success)?.event
|
||||
event?.isRemote == true && event.content.canReact()
|
||||
}
|
||||
}
|
||||
|
||||
fun handleEvents(event: ActionListEvents) {
|
||||
|
||||
@@ -33,3 +33,20 @@ fun TimelineItemEventContent.canBeCopied(): Boolean =
|
||||
is TimelineItemRedactedContent -> true
|
||||
else -> false
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if user can react (i.e. send a reaction) on the event content.
|
||||
*/
|
||||
fun TimelineItemEventContent.canReact(): Boolean =
|
||||
when (this) {
|
||||
is TimelineItemTextBasedContent,
|
||||
is TimelineItemAudioContent,
|
||||
is TimelineItemEncryptedContent,
|
||||
is TimelineItemFileContent,
|
||||
is TimelineItemImageContent,
|
||||
is TimelineItemLocationContent,
|
||||
is TimelineItemVideoContent -> true
|
||||
is TimelineItemStateContent,
|
||||
is TimelineItemRedactedContent,
|
||||
TimelineItemUnknownContent -> false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user