change (member moderation) : allow disabled action and render unban too

This commit is contained in:
ganfra 2025-05-16 18:38:15 +02:00
parent a09cc8de97
commit e405bf80a6
11 changed files with 119 additions and 77 deletions

View file

@ -11,5 +11,5 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
interface RoomMemberModerationEvents {
data class ShowActionsForUser(val user: MatrixUser) : RoomMemberModerationEvents
data class ProcessAction(val action: ModerationAction) : RoomMemberModerationEvents
data class ProcessAction(val action: ModerationAction, val targetUser: MatrixUser) : RoomMemberModerationEvents
}

View file

@ -9,12 +9,13 @@ package io.element.android.features.roommembermoderation.api
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import io.element.android.libraries.matrix.api.user.MatrixUser
interface RoomMemberModerationRenderer {
@Composable
fun Render(
state: RoomMemberModerationState,
onSelectAction: (ModerationAction) -> Unit,
onSelectAction: (ModerationAction, MatrixUser) -> Unit,
modifier: Modifier,
)
}

View file

@ -7,17 +7,20 @@
package io.element.android.features.roommembermoderation.api
import io.element.android.libraries.matrix.api.user.MatrixUser
interface RoomMemberModerationState {
val canKick: Boolean
val canBan: Boolean
val eventSink: (RoomMemberModerationEvents) -> Unit
}
data class ModerationActionState(
val action: ModerationAction,
val isEnabled: Boolean,
)
sealed interface ModerationAction {
data class DisplayProfile(val user: MatrixUser) : ModerationAction
data class KickUser(val user: MatrixUser) : ModerationAction
data class BanUser(val user: MatrixUser) : ModerationAction
data class UnbanUser(val user: MatrixUser) : ModerationAction
data object DisplayProfile : ModerationAction
data object KickUser : ModerationAction
data object BanUser : ModerationAction
data object UnbanUser : ModerationAction
}