mirror of
https://github.com/fromchat-messenger/app.git
synced 2026-09-22 19:15:05 +03:00
Make admins see the delete button
Signed-off-by: denis0001-dev <denis0001.dev@ya.ru>
This commit is contained in:
@@ -750,9 +750,19 @@ fun ChatScreen(
|
||||
return@LaunchedEffect
|
||||
}
|
||||
val liveAuthor = liveMessage.user_id == currentUserId
|
||||
val liveFp = messageContextMenuFingerprint(liveMessage, liveAuthor, isReadOnly)
|
||||
val liveFp = messageContextMenuFingerprint(
|
||||
liveMessage,
|
||||
liveAuthor,
|
||||
liveAuthor || currentUserId == 1,
|
||||
isReadOnly,
|
||||
)
|
||||
val menuAuthor = menuMessage.user_id == currentUserId
|
||||
val menuFp = messageContextMenuFingerprint(menuMessage, menuAuthor, isReadOnly)
|
||||
val menuFp = messageContextMenuFingerprint(
|
||||
menuMessage,
|
||||
menuAuthor,
|
||||
menuAuthor || currentUserId == 1,
|
||||
isReadOnly,
|
||||
)
|
||||
if (menuFp != liveFp || liveMessage.id != menuMessage.id) {
|
||||
contextMenuState = contextMenuState.copy(message = liveMessage)
|
||||
}
|
||||
@@ -1482,6 +1492,8 @@ fun ChatScreen(
|
||||
MessageContextMenu(
|
||||
state = contextMenuState,
|
||||
isAuthor = contextMenuState.message?.user_id == currentUserId,
|
||||
canDelete = contextMenuState.message?.user_id == currentUserId ||
|
||||
currentUserId == 1,
|
||||
isReadOnly = isReadOnly,
|
||||
screenWidthPx = screenWidthPx,
|
||||
screenHeightPx = screenHeightPx,
|
||||
|
||||
@@ -75,6 +75,7 @@ data class ContextMenuState(
|
||||
internal fun messageContextMenuFingerprint(
|
||||
message: Message,
|
||||
isAuthor: Boolean,
|
||||
canDelete: Boolean,
|
||||
isReadOnly: Boolean,
|
||||
): String {
|
||||
val isQueued = message.isQueuedOutbound() && isAuthor
|
||||
@@ -88,7 +89,7 @@ internal fun messageContextMenuFingerprint(
|
||||
if (!isQueued && !isReadOnly) {
|
||||
append("|reply=1")
|
||||
append("|edit=").append(isAuthor && !corrupted)
|
||||
append("|del=").append(isAuthor)
|
||||
append("|del=").append(canDelete)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -97,6 +98,7 @@ internal fun messageContextMenuFingerprint(
|
||||
fun MessageContextMenu(
|
||||
state: ContextMenuState,
|
||||
isAuthor: Boolean,
|
||||
canDelete: Boolean = isAuthor,
|
||||
onDismiss: () -> Unit,
|
||||
onReply: (Message) -> Unit,
|
||||
onEdit: (Message) -> Unit,
|
||||
@@ -161,6 +163,7 @@ fun MessageContextMenu(
|
||||
ContextMenuContent(
|
||||
message = state.message,
|
||||
isAuthor = isAuthor,
|
||||
canDelete = canDelete,
|
||||
onReply = {},
|
||||
onEdit = {},
|
||||
onDelete = {},
|
||||
@@ -242,6 +245,7 @@ fun MessageContextMenu(
|
||||
ContextMenuContent(
|
||||
message = state.message,
|
||||
isAuthor = isAuthor,
|
||||
canDelete = canDelete,
|
||||
onReply = {
|
||||
onReply(it)
|
||||
onDismiss()
|
||||
@@ -287,6 +291,7 @@ fun MessageContextMenu(
|
||||
private fun ContextMenuContent(
|
||||
message: Message,
|
||||
isAuthor: Boolean,
|
||||
canDelete: Boolean,
|
||||
onReply: (Message) -> Unit,
|
||||
onEdit: (Message) -> Unit,
|
||||
onDelete: (Message) -> Unit,
|
||||
@@ -402,7 +407,7 @@ private fun ContextMenuContent(
|
||||
onClick = { onEdit(message) }
|
||||
)
|
||||
}
|
||||
if (isAuthor) {
|
||||
if (canDelete) {
|
||||
ContextMenuItem(
|
||||
icon = Icons.Rounded.Delete,
|
||||
text = labelDelete,
|
||||
|
||||
Reference in New Issue
Block a user