Fix room member not tappable in a Thread (#6416)
This commit is contained in:
@@ -43,6 +43,9 @@ import io.element.android.features.messages.impl.timeline.TimelinePresenter
|
|||||||
import io.element.android.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories
|
import io.element.android.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories
|
||||||
import io.element.android.features.messages.impl.timeline.di.TimelineItemPresenterFactories
|
import io.element.android.features.messages.impl.timeline.di.TimelineItemPresenterFactories
|
||||||
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.roommembermoderation.api.ModerationAction
|
||||||
|
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||||
|
import io.element.android.features.roommembermoderation.api.RoomMemberModerationRenderer
|
||||||
import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab
|
import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab
|
||||||
import io.element.android.libraries.androidutils.system.openUrlInExternalApp
|
import io.element.android.libraries.androidutils.system.openUrlInExternalApp
|
||||||
import io.element.android.libraries.architecture.NodeInputs
|
import io.element.android.libraries.architecture.NodeInputs
|
||||||
@@ -86,6 +89,7 @@ class ThreadedMessagesNode(
|
|||||||
private val mediaPlayer: MediaPlayer,
|
private val mediaPlayer: MediaPlayer,
|
||||||
private val permalinkParser: PermalinkParser,
|
private val permalinkParser: PermalinkParser,
|
||||||
private val appNavigationStateService: AppNavigationStateService,
|
private val appNavigationStateService: AppNavigationStateService,
|
||||||
|
private val roomMemberModerationRenderer: RoomMemberModerationRenderer,
|
||||||
) : Node(buildContext, plugins = plugins), MessagesNavigator {
|
) : Node(buildContext, plugins = plugins), MessagesNavigator {
|
||||||
data class Inputs(
|
data class Inputs(
|
||||||
val threadRootEventId: ThreadId,
|
val threadRootEventId: ThreadId,
|
||||||
@@ -289,6 +293,17 @@ class ThreadedMessagesNode(
|
|||||||
knockRequestsBannerView = {},
|
knockRequestsBannerView = {},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
roomMemberModerationRenderer.Render(
|
||||||
|
state = state.roomMemberModerationState,
|
||||||
|
onSelectAction = { action, target ->
|
||||||
|
when (action) {
|
||||||
|
is ModerationAction.DisplayProfile -> callback.navigateToRoomMemberDetails(target.userId)
|
||||||
|
else -> state.roomMemberModerationState.eventSink(RoomMemberModerationEvents.ProcessAction(action, target))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
modifier = Modifier,
|
||||||
|
)
|
||||||
|
|
||||||
var focusedEventId by rememberSaveable {
|
var focusedEventId by rememberSaveable {
|
||||||
mutableStateOf(inputs.focusedEventId)
|
mutableStateOf(inputs.focusedEventId)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user