No actions (yet) for State Event.

This commit is contained in:
Benoit Marty 2023-05-17 17:16:01 +02:00 committed by Benoit Marty
parent e81d20ec2e
commit e886312ff6

View file

@ -24,6 +24,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
import io.element.android.features.messages.impl.timeline.model.TimelineItem 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.libraries.architecture.Presenter import io.element.android.libraries.architecture.Presenter
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
@ -53,20 +54,25 @@ class ActionListPresenter @Inject constructor() : Presenter<ActionListState> {
) )
} }
fun CoroutineScope.computeForMessage(timelineItem: TimelineItem.Event, target: MutableState<ActionListState.Target>) = launch { private fun CoroutineScope.computeForMessage(timelineItem: TimelineItem.Event, target: MutableState<ActionListState.Target>) = launch {
target.value = ActionListState.Target.Loading(timelineItem) target.value = ActionListState.Target.Loading(timelineItem)
val actions = val actions =
if (timelineItem.content is TimelineItemRedactedContent) { when (timelineItem.content) {
emptyList() is TimelineItemRedactedContent,
} else { is TimelineItemStateContent -> {
mutableListOf( // TODO Add Share action (also) here, and developer options
TimelineItemAction.Reply, emptyList()
TimelineItemAction.Forward, }
TimelineItemAction.Copy, else -> {
).also { mutableListOf(
if (timelineItem.isMine) { TimelineItemAction.Reply,
it.add(TimelineItemAction.Edit) TimelineItemAction.Forward,
it.add(TimelineItemAction.Redact) TimelineItemAction.Copy,
).also {
if (timelineItem.isMine) {
it.add(TimelineItemAction.Edit)
it.add(TimelineItemAction.Redact)
}
} }
} }
} }