Merge pull request #989 from vector-im/feature/bma/noEmojiForStateEvent
Prevent reaction on state events and deleted events
This commit is contained in:
commit
e927c05b07
2 changed files with 22 additions and 1 deletions
|
|
@ -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.TimelineItemRedactedContent
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
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.canBeCopied
|
||||||
|
import io.element.android.features.messages.impl.timeline.model.event.canReact
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.core.meta.BuildMeta
|
import io.element.android.libraries.core.meta.BuildMeta
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
@ -48,7 +49,10 @@ class ActionListPresenter @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
val displayEmojiReactions by remember {
|
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) {
|
fun handleEvents(event: ActionListEvents) {
|
||||||
|
|
|
||||||
|
|
@ -33,3 +33,20 @@ fun TimelineItemEventContent.canBeCopied(): Boolean =
|
||||||
is TimelineItemRedactedContent -> true
|
is TimelineItemRedactedContent -> true
|
||||||
else -> false
|
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
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue